Patch level : 12.0 no-patch

Files correlati     : f9.exe
Commento            :
- Corretta eliminazione pacchetto
- Corretto caricamento movimenti
- Corretta lettura flag elabf9 da mov
- Aggiunta funzione pulizia flag (solo per DBG)
This commit is contained in:
Simone Palacino 2019-09-16 10:19:27 +02:00
parent fcd059401a
commit b50b52816e

View File

@ -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();