diff --git a/ba/bacnv.cpp b/ba/bacnv.cpp index 6f901adcf..a016db6a4 100755 --- a/ba/bacnv.cpp +++ b/ba/bacnv.cpp @@ -20,7 +20,7 @@ #include -#define usage "Errore - uso : bacnv [1|2|3|4|5|6] ditta" +#define usage "Errore - uso : bacnv [1|2|3|4|5|6|7] ditta" /////////////////////////////////////////////////////////////////////////////////////////////////////// // Applicazione di conversione archivi XBase, valida per tutti e 4 i tipi di DLL @@ -161,6 +161,8 @@ public: void zero_770(void); void convert_patty(void); void convert_codconc(void); + void convert_profili(void); + void convert_caus_attiv(void); TConversione_archivi() : _oldditta(0), _codditta(0), _error(0) {} }; @@ -247,21 +249,14 @@ bool TConversione_archivi::menu(MENU_TAG) comuni.load(format("%sstd/ncom02.txt", __ptprf)); //Cancella tutti i vecchi profili, sostituendoli con i nuovi - TSystemisamfile form(LF_FORM),rform(LF_RFORM); - TDir d; - TFilename lf; - - d.get(LF_FORM, _nolock, _comdir, _sysdirop); - d.eod() = 0; - d.put(LF_FORM, _comdir, _sysdirop); - form.pack(); - lf.format("%sstd/lf0054.txt", __ptprf); - if (fexist(lf)) form.load(lf); - d.get(LF_RFORM, _nolock, _comdir, _sysdirop); - d.eod() = 0; - d.put(LF_RFORM, _comdir, _sysdirop); - rform.pack(); - } + convert_profili(); + } + case 7: + { + if (_codditta == 0) + convert_caus_attiv(); + break; + } } default: break; @@ -577,6 +572,65 @@ if (_codditta == 0) if (fexist(lf) && fexist(d.filename())) f.load(lf); } +} + +void TConversione_archivi::convert_caus_attiv() +{ + { + TLocalisamfile attiv(LF_ATTIV); + TProgind p(attiv.items(), "Conversione archivio attivita'", FALSE, TRUE,20); + p.setstatus(1L); + for (attiv.first(); !attiv.eof(); attiv.next()) + { + bool val = attiv.get_bool("ART74/4"); + attiv.put("ART74_4", val); + attiv.rewrite(); + p.addstatus(1L); + } + } + { + TLocalisamfile ditte(LF_NDITTE); + TProgind p(ditte.items(), "Conversione archivi causali", FALSE, TRUE,5); + p.setstatus(1L); + set_autoload_new_files(FALSE); + for (ditte.first(); !ditte.eof(); ditte.next()) + { + const long codditta = ditte.get_long("CODDITTA"); + if (prefix().exist(codditta)) + { + p.set_text(format("Ditta: %ld",codditta)); + set_firm(codditta); + TLocalisamfile caus(LF_CAUSALI); + caus.zero(); + caus.put("CODCAUS","C08"); + if (caus.read() == NOERR) + caus.put("TIPODOC","FS"); + caus.rewrite(); + } + p.addstatus(1); + } + p.setstatus(ditte.items()); + prefix().set("com"); + set_autoload_new_files(TRUE); + } +} + +void TConversione_archivi::convert_profili() +{ + TSystemisamfile form(LF_FORM),rform(LF_RFORM); + TDir d; + TFilename lf; + + d.get(LF_FORM, _nolock, _comdir, _sysdirop); + d.eod() = 0; + d.put(LF_FORM, _comdir, _sysdirop); + form.pack(); + lf.format("%sstd/lf0054.txt", __ptprf); + if (fexist(lf)) form.load(lf); + d.get(LF_RFORM, _nolock, _comdir, _sysdirop); + d.eod() = 0; + d.put(LF_RFORM, _comdir, _sysdirop); + rform.pack(); } void TConversione_archivi::convert_codconc() @@ -722,7 +776,7 @@ int main(int argc,char** argv) { const int r = (argc > 1) ? atoi(argv[1]) : 0; - if (r < 0 || r > 6) + if (r < 0 || r > 7) { error_box(usage); return 100; diff --git a/ba/fconv.ini b/ba/fconv.ini index 6b93a5c5e..de25737fa 100755 --- a/ba/fconv.ini +++ b/ba/fconv.ini @@ -11,6 +11,6 @@ ACNV(15)=bacnv 3 [199505] ACNV(5)=bacnv 5 [199507] -ACNV(5)=bacnv 6 +ACNV(10)=bacnv 6 [EOF]