From f40dc8cb0e2db1a6f0726a98cd13a372994ab8ae Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Wed, 14 Nov 2018 11:49:09 +0100 Subject: [PATCH] Patch level : 12.0 642 Files correlati : sy Commento : Rifatta gestione DNINST, adesso al posto dell'FTP utilizza file explorer --- src/ba/ba2800.cpp | 83 ++++++++++++++++++++++++++++++++++------------ src/ba/ba2800a.h | 2 ++ src/ba/ba2800a.uml | 7 +++- 3 files changed, 70 insertions(+), 22 deletions(-) diff --git a/src/ba/ba2800.cpp b/src/ba/ba2800.cpp index 1604f28ea..0da92272b 100644 --- a/src/ba/ba2800.cpp +++ b/src/ba/ba2800.cpp @@ -14,6 +14,7 @@ #include #include "ba2800a.h" +#include "../ve/veconf.h" /////////////////////////////////////////////////////////// // Utilities @@ -182,9 +183,21 @@ bool Tdnist_full::save(int version) const if (done) { - int ass_year = 2151; - if (version < 12) - ass_year = version < 11 ? 2101 : 2121; + int ass_year = 0; + switch (version) + { + case 10: + ass_year = 2101; + break; + case 11: + ass_year = 2121; + break; + case 12: + default: + ass_year = 2151; + break; + } + ofstream out(DNINST_TXT); out << ass_year << endl; FOR_EACH_ARRAY_ITEM(_chiavi, key, obj) @@ -200,8 +213,9 @@ bool Tdnist_full::save(int version) const { done = dninst.encode(DNINST_TXT); #ifdef DBG - if (version == 12) - fcopy(DNINST_TXT, "../src/setup/dninst.txt"); + TString dninst_encoded = "../src/setup/dninst_"; + dninst_encoded << version << ".txt"; + fcopy(DNINST_TXT, dninst_encoded); #endif } @@ -278,6 +292,7 @@ void Tdninst_mask::overnight_batch() { log(0, TR("Inizio procedura aggiornamento DNINST")); + set(F_FLD_ON, "X"); set(F_ZIP_ON, "X"); set(F_DSN_ON, "X"); set(F_XML_ON, ""); @@ -346,7 +361,8 @@ int Tdninst_mask::dongle_compare(const TSortable& o1, const TSortable& o2, void* const TString& Tdninst_mask::remote_dninst(int version) const { - if (!get_bool(F_ZIP_ON) || field(F_ZIP_WWW).empty()) + + if (!get_bool(F_FLD_ON) && (!get_bool(F_ZIP_ON) || field(F_ZIP_WWW).empty())) return EMPTY_STRING; if (version < 10) @@ -356,13 +372,20 @@ const TString& Tdninst_mask::remote_dninst(int version) const } TString& path = get_tmp_string(); - path << "ftp://" << get(F_ZIP_USR) - << ':' << get(F_ZIP_PWD) - << '@' << get(F_ZIP_WWW) - << '/' << get(F_ZIP_USR) - << "/release/v_" << version - << ".0/program/" << DNINST_ZIP; - + if (get_bool(F_FLD_ON)) + { + path << "//SIRIOUPDATE/ftp/guastalla/release/v_" << version + << ".0/program/" << DNINST_ZIP; + } + else + { + path << "ftp://" << get(F_ZIP_USR) + << ':' << get(F_ZIP_PWD) + << '@' << get(F_ZIP_WWW) + << '/' << get(F_ZIP_USR) + << "/release/v_" << version + << ".0/program/" << DNINST_ZIP; + } return path; } @@ -856,13 +879,31 @@ void Tdninst_mask::save_sheet() main_app().get_version_info(y, v, t, p); const int curr = v; - for (int prev = 10; prev <= curr; prev++) if (_dninst.save(prev)) + for (int prev = 10; prev <= curr; prev++) { - fill_sheet(); - const TFilename ftp = remote_dninst(prev); - if (ftp != DNINST_ZIP && ftp.starts_with("ftp://")) - if (!is_running() || yesno_box(FR("Copiare il DNINST locale in %s?"), (const char*)ftp)) - send_remote_dninst(ftp); + if (_dninst.save(prev)) + { + fill_sheet(); + const TFilename remote_path = remote_dninst(prev); + if (remote_path != DNINST_ZIP) + { + bool ok = false; + // Se il percorso è ftp uso il classico metodo + if (remote_path.starts_with("ftp://")) + { + if (!is_running() || yesno_box(FR("Copiare il DNINST locale in %s?"), static_cast(remote_path))) + ok = send_remote_dninst(remote_path); + } + // Altrimenti copio + else + { + ok = yesno_box("Copiare il DNINST locale su SIRIOUPDATE?") && fcopy(DNINST_ZIP, remote_path); + } + + // Stampo il messaggio + ok ? message_box("DNINST copiato correttamente!") : error_box(FR("Errore durante la copia per la versione %d", prev)); + } + } } fcopy(DNINST_BAK, DNINST_ZIP); @@ -948,9 +989,9 @@ bool Tdninst_mask::on_field_event(TOperable_field& o, TField_event e, long jolly if (e == fe_button) save_sheet(); break; - case F_ZIP_ON: + case F_FLD_ON: if (e == fe_init && o.get().empty()) - set(F_ZIP_ON, "X", 0x1); + set(F_FLD_ON, "X"); break; case F_ZIP_WWW: if ((e == fe_init || e == fe_modify || e == fe_close) && o.empty()) diff --git a/src/ba/ba2800a.h b/src/ba/ba2800a.h index 8540821b2..d8f62b0f9 100644 --- a/src/ba/ba2800a.h +++ b/src/ba/ba2800a.h @@ -13,6 +13,8 @@ #define F_XML_USR 223 #define F_XML_PWD 224 +#define F_FLD_ON 225 + #define F_SORT 198 #define F_DNSHEET 199 diff --git a/src/ba/ba2800a.uml b/src/ba/ba2800a.uml index 83002509b..b9fcd7c9a 100644 --- a/src/ba/ba2800a.uml +++ b/src/ba/ba2800a.uml @@ -116,9 +116,14 @@ BEGIN GROUP 3 END +BOOLEAN F_FLD_ON +BEGIN + PROMPT 1 3 "Explorer" +END + LIST F_SORT 1 16 BEGIN - PROMPT 1 3 "Ordinamento " + PROMPT 46 3 "Ordinamento " ITEM "0|Chiave" ITEM "1|Rivenditore" ITEM "2|Cliente"