diff --git a/src/f9/f90100.cpp b/src/f9/f90100.cpp index e8426d7a2..107eb9a43 100644 --- a/src/f9/f90100.cpp +++ b/src/f9/f90100.cpp @@ -282,8 +282,21 @@ void TMonitor_mask::delete_pack(bool all) flag = true; const TString id_estr(row->get(cid2index(F_IDESTR))); TString query; - // Elimino testata in DRD, solo se provvis. query << "BEGIN\n" + " DECLARE @stato CHAR(2);\n\n" + " SELECT @stato = " DRD_STATO "\n" + " FROM " F9_DRD "\n" + " WHERE " DRD_ID_EST " = '" << id_estr << "';\n\n" + " IF(@stato = '" D_GEST_ERR "') BEGIN\n" + " DELETE FROM " F9_ERR " WHERE IDESTR = '" << id_estr << "';\n" + " END\n" + " ELSE BEGIN\n" + " SELECT @stato AS STATO;\n" + " END\n" + "END"; + db().sq_set_exec(query); + // Elimino testata in DRD, solo se provvis. + query.cut(0) << "BEGIN\n" " DECLARE @flag_prov CHAR(1), @stato CHAR(2);\n\n" " SELECT @flag_prov = " DRD_FLAG_PD ", @stato = " DRD_STATO "\n" " FROM " F9_DRD "\n" @@ -300,19 +313,6 @@ void TMonitor_mask::delete_pack(bool all) warning_box("E' possibile eliminare solo un'estrazione provvisoria o in stato di errore diagnostica gestionale."); return; } - query.cut(0) << "BEGIN\n" - " DECLARE @stato CHAR(2);\n\n" - " SELECT @stato = " DRD_STATO "\n" - " FROM " F9_DRD "\n" - " WHERE " DRD_ID_EST " = '" << id_estr << "';\n\n" - " IF(@stato = '" D_GEST_ERR "') BEGIN\n" - " DELETE FROM " F9_ERR " WHERE IDESTR = '" << id_estr << "';\n" - " END\n" - " ELSE BEGIN\n" - " SELECT @STATO AS STATO;\n" - " END\n" - " END"; - db().sq_set_exec(query); if (!all) break; } @@ -732,7 +732,8 @@ void TF9_app::load() mov.setkey(2); mov.put(MOV_DATAREG, dataini); int items = 0; - for (bool ok = mov.read(); ok && mov.get_date(MOV_DATAREG) <= dataend; ok = mov.next() == NOERR) + TDate datareg; + for (bool ok = mov.read(); ok && (datareg = mov.get_date(MOV_DATAREG)) >= dataini && datareg <= dataend; ok = mov.next() == NOERR) items++; TProgress_monitor progr(items, "Acquisizione movimenti"); @@ -740,16 +741,17 @@ void TF9_app::load() mov.zero(); mov.setkey(2); mov.put(MOV_DATAREG, dataini); - const TipoIVA tipo = tipodoc == 'V' ? iva_vendite : iva_acquisti; + const TipoIVA tipo = tipodoc == 'A' ? iva_acquisti : iva_vendite; TLocalisamfile clifo(LF_CLIFO); // Prendo tutti i movimenti a partire da una data e li carico tutti fino alla data finale _movs.clear(); - for (bool ok = mov.read(); ok && mov.get_date(MOV_DATAREG) <= dataend; ok = mov.next() == NOERR) + + for (bool ok = mov.read(); ok && (datareg = mov.get_date(MOV_DATAREG)) >= dataini && datareg <= dataend; ok = mov.next() == NOERR) { if (!progr.add_status()) break; - TToken_string elab_f9(mov.get(MOV_ELABF9)); + TToken_string elab_f9(mov.get(MOV_ELABF9), ';'); // Se definitivo controllo il flag di stampato REGST if (mov.get_bool(MOV_REGST) != flagpro && mov.get(MOV_NUMDOC).full() && TCausale(mov.get(MOV_CODCAUS)).reg().iva() == tipo @@ -1227,9 +1229,26 @@ void TF9_app::segna_in_errore() const } +void pulisci_mov() +{ + TLocalisamfile mov(LF_MOV); + mov.setkey(2); + mov.put(MOV_DATAREG, TDate("01-01-2019")); + mov.read(); + do + { + mov.put(MOV_ELABF9, ""); + mov.write(); + bool ok = mov.rewrite() == NOERR; + }while (mov.next() == NOERR); +} + void TF9_app::main_loop() { check_table(); +#ifdef DBG // Per sicurezza che non venga inserito in release + //pulisci_mov(); +#endif _msk = new TMonitor_mask(); _estr_msk = new TEstrai_mask();