Patch level : 12.0 874
Files correlati : f9.exe, f90100.sql Commento : - Pulizia codice - Eliminazione record movimento nella lista di controllo errori (eliminazione da db) - Cambiato sistema di fetch numero ultima estrazione del giorno - Cambiato ordinamento visualizzazione pacchetti in ordine decr. di data - Sistemata query controllo sovrapposizione periodi per definitivo - Aggiunti messaggi di errore in caso di fallimento creazione/aggiornam. tabelle
This commit is contained in:
parent
dee23524bc
commit
257f685a70
@ -101,11 +101,11 @@ bool TEstrai_mask::estrai_handler(TMask_field& f, unsigned short key)
|
||||
message_box("Estrazione avvenuta con successo!");
|
||||
app().segna_estratti();
|
||||
}
|
||||
else if (!stato)
|
||||
{
|
||||
app().segna_in_errore();
|
||||
warning_box("L'estrazione non e' stata completata. Controllare il log degli errori.");
|
||||
}
|
||||
if (!stato)
|
||||
{
|
||||
app().segna_in_errore();
|
||||
warning_box("L'estrazione non e' stata completata. Controllare il log degli errori.");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -226,13 +226,13 @@ void TMonitor_mask::open_win_conf() const
|
||||
m->run();
|
||||
}
|
||||
|
||||
void TMonitor_mask::fill()
|
||||
void TMonitor_mask::fill() const
|
||||
{
|
||||
app()._ambiente = ini_get_string(CONFIG_DITTA, PAR_MOD, AMBIENTE_F9);
|
||||
app()._addr_doc = ini_get_string(CONFIG_DITTA, PAR_MOD, ADDRCART_F9);
|
||||
|
||||
TString query;
|
||||
query << "SELECT * FROM F9DRD00K ORDER BY " << DRD_TIME << ";";
|
||||
query << "SELECT * FROM F9DRD00K ORDER BY " << DRD_TIME << " DESC;";
|
||||
db().sq_set_exec(query, false);
|
||||
|
||||
TSheet_field& sf = sfield(S_ELAB);
|
||||
@ -260,19 +260,12 @@ void TMonitor_mask::fill()
|
||||
row.add(db().sq_get(DRD_UTENTE));
|
||||
row.add(TF9_app::traduci_stato(db().sq_get(DRD_STATO)));
|
||||
row.add(db().sq_get(DRD_DESC));
|
||||
if (TDate(row.get(cid2index(F_DATAESTR))) == today)
|
||||
{
|
||||
if (TString(row.get(cid2index(F_PROV_B))) == "X")
|
||||
app()._last_estr_p = real(TString(row.get(cid2index(F_IDESTR))).ltrim(10)).integer();
|
||||
else
|
||||
app()._last_estr_d = real(TString(row.get(cid2index(F_IDESTR))).ltrim(10)).integer();
|
||||
}
|
||||
}
|
||||
sf.force_update();
|
||||
sf.show();
|
||||
}
|
||||
|
||||
void TMonitor_mask::delete_pack(bool all)
|
||||
void TMonitor_mask::delete_pack(const bool all) const
|
||||
{
|
||||
bool flag = false;
|
||||
TSheet_field& sf = sfield(S_ELAB);
|
||||
@ -418,6 +411,13 @@ void TF9_dberr::send()
|
||||
_insert.cut(0) << "INSERT INTO " F9_ERR " VALUES ()";
|
||||
}
|
||||
|
||||
void TF9_dberr::del_err(const TString& id_estr, int numreg)
|
||||
{
|
||||
TString query;
|
||||
query << "DELETE FROM " F9_ERR " WHERE IDESTR = '" << id_estr << "' AND NUMREG = '" << numreg << "';";
|
||||
db().sq_set_exec(query);
|
||||
}
|
||||
|
||||
char TF9_dberr::get_errori(const TString& id_estr, vector<TToken_string>& movs)
|
||||
{
|
||||
TString query;
|
||||
@ -698,7 +698,7 @@ void TF9_app::edit_wa() const
|
||||
"INSERT INTO F9WA00K (F9PCSOC, F9PPCDC0) VALUES (" << _ambiente << ", " << _addr_doc << ");";
|
||||
}
|
||||
|
||||
void TF9_app::export_error_list(bool esclusi) // todo: da ritestare
|
||||
void TF9_app::export_error_list(bool esclusi)
|
||||
{
|
||||
TF9_dberr dberr;
|
||||
vector<TToken_string>& movs = esclusi ? _esclusi : _movs;
|
||||
@ -747,7 +747,6 @@ void TF9_app::load()
|
||||
|
||||
// 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 && (datareg = mov.get_date(MOV_DATAREG)) >= dataini && datareg <= dataend; ok = mov.next() == NOERR)
|
||||
{
|
||||
if (!progr.add_status())
|
||||
@ -976,10 +975,16 @@ bool TF9_app::is_doc_xml(const TLocalisamfile& mov)
|
||||
TString TF9_app::next_estr_today(const char tipo) const
|
||||
{
|
||||
char estr[] = {0,0,0,0,0,0,0,0,0};
|
||||
if(tipo == 'P')
|
||||
sprintf_s(estr, 9, "%08d", _last_estr_p + 1);
|
||||
else
|
||||
sprintf_s(estr, 9, "%08d", _last_estr_d + 1);
|
||||
TString query;
|
||||
query << "SELECT TOP 1 " DRD_ID_EST " AS IDESTR\n"
|
||||
"FROM " F9_DRD "\n"
|
||||
"WHERE " DRD_ID_EST " LIKE '" << today.date2ansi() << tipo << "%'\n" <<
|
||||
"ORDER BY " DRD_ID_EST " DESC";
|
||||
if(!db().sq_set_exec(query))
|
||||
fatal_box(db().sq_get_text_error());
|
||||
|
||||
const int last_estr = real(db().sq_get("IDESTR").ltrim(10)).integer();
|
||||
sprintf_s(estr, 9, "%08d", last_estr + 1);
|
||||
return estr;
|
||||
}
|
||||
|
||||
@ -989,9 +994,10 @@ bool TF9_app::check_periodo_def(const drd& head)
|
||||
// Controllo se ci sono estrazioni (definitive) che si sovrappongono di periodo (con lo stesso tipo) e che non siano in stato di errore
|
||||
// Nel caso di stato di errore e' invece possibile la ri-estrazione
|
||||
query << "SELECT *\nFROM F9DRD00K\n" <<
|
||||
"WHERE '" << head.dal.date2ansi() << "' =< " DRD_DATAA " AND '" << head.al.date2ansi() << "' >= " DRD_DATADA " AND "
|
||||
DRD_FLAG_PD " = 'D' AND\n F9RIDAS <> '" D_GEST_ERR "' AND F9RIDAS <> '" D_WA_ERR "' AND F9RIDAS <> '" D_ERR_SOS "' AND " DRD_TIPODOC " = '" << head.tipo_doc << "';";
|
||||
db().sq_set_exec(query);
|
||||
"WHERE " << DRD_DATAA << " >= '" << head.dal.date2ansi() << "' AND " DRD_DATADA " <= '" << head.al.date2ansi() << "' AND "
|
||||
DRD_FLAG_PD " = 'D' AND\n " DRD_STATO " <> '" D_GEST_ERR "' AND " DRD_STATO " <> '" D_WA_ERR "' AND " DRD_STATO " <> '" D_ERR_SOS "' AND " DRD_TIPODOC " = '" << head.tipo_doc << "';";
|
||||
if (!db().sq_set_exec(query))
|
||||
fatal_box(db().sq_get_text_error());
|
||||
return db().sq_items() == 0;
|
||||
}
|
||||
|
||||
@ -1074,7 +1080,7 @@ int TF9_app::estrai()
|
||||
else if (_head.stato_estr == D_GEST_OK)
|
||||
{
|
||||
_msk->disable_controllo_err();
|
||||
return estrazione_iva() ? 1 : false;
|
||||
return estrazione_iva() ? 1 : 0;
|
||||
}
|
||||
}
|
||||
return -2;
|
||||
@ -1229,7 +1235,7 @@ void TF9_app::segna_in_errore() const
|
||||
db().sq_set_exec(query);
|
||||
}
|
||||
|
||||
|
||||
#ifdef DBG
|
||||
void pulisci_mov()
|
||||
{
|
||||
TLocalisamfile mov(LF_MOV);
|
||||
@ -1240,9 +1246,10 @@ void pulisci_mov()
|
||||
{
|
||||
mov.put(MOV_ELABF9, "");
|
||||
mov.write();
|
||||
bool ok = mov.rewrite() == NOERR;
|
||||
mov.rewrite();
|
||||
}while (mov.next() == NOERR);
|
||||
}
|
||||
#endif
|
||||
|
||||
void TF9_app::main_loop()
|
||||
{
|
||||
@ -1273,12 +1280,12 @@ bool TF9_app::create_tables() const
|
||||
char ver[5] = "0000";
|
||||
sprintf_s(ver, 5, "%04d", 100);
|
||||
tabmod.put(TABMOD_TABVER, ver);
|
||||
tabmod.write(); // todo: controllare
|
||||
ok &= tabmod.rewrite() == NOERR; // todo: controllare
|
||||
tabmod.write();
|
||||
ok &= tabmod.rewrite() == NOERR;
|
||||
return ok;
|
||||
}
|
||||
|
||||
bool TF9_app::check_tabelle_f9()
|
||||
bool TF9_app::check_tabelle_f9() const
|
||||
{
|
||||
bool ok = true;
|
||||
TString query;
|
||||
@ -1553,7 +1560,7 @@ TToken_string* TControllo_mask::selected_fat() const
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void TControllo_mask::associa()
|
||||
void TControllo_mask::associa() // todo: levare gli ultimi residui del vecchio funzionamento del controllo errori
|
||||
{
|
||||
TToken_string* mov_sel = selected_mov();
|
||||
TToken_string* fat_sel = selected_fat();
|
||||
@ -1579,6 +1586,7 @@ void TControllo_mask::associa()
|
||||
++it;
|
||||
}
|
||||
it->add(" ", 0);
|
||||
TF9_dberr::del_err(_id_estr, mov_sel->get_int(cid2index(F_CNUMREG)));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -70,8 +70,6 @@ class TF9_app : public TSkeleton_application
|
||||
int _tot_movs;
|
||||
TString _ambiente; // Codice ambiente (codsoc)
|
||||
TString _addr_doc; // Indirizzo documenti cartacei
|
||||
int _last_estr_p;
|
||||
int _last_estr_d;
|
||||
char _tipodoc_escl;
|
||||
char _flagprov_escl;
|
||||
|
||||
@ -139,12 +137,12 @@ public:
|
||||
// Controllo e aggiornamento tabelle F9
|
||||
|
||||
bool create_tables() const; // Creazione tabelle F9
|
||||
bool check_tabelle_f9(); // Controllo esistenza delle tabelle e in caso le crea
|
||||
bool check_tabelle_f9() const; // Controllo esistenza delle tabelle e in caso le crea
|
||||
bool aggiorna_tab_f9(int version) const; // Aggiorna modifiche alle tabelle F9 come descritto in cima al file .cpp
|
||||
bool check_tab_version() const; // Controllo della versione e in caso aggiorna le tabelle
|
||||
bool check_table() const;
|
||||
TF9_app() : _estr_msk(nullptr), _msk(nullptr), _mov_escl("", '|'), _tot_movs(0), _ambiente(""), _addr_doc(""),
|
||||
_last_estr_p(0), _last_estr_d(0), _tipodoc_escl('A'), _flagprov_escl('P') { }
|
||||
_tipodoc_escl('A'), _flagprov_escl('P') { }
|
||||
};
|
||||
|
||||
TF9_app& app();
|
||||
@ -162,9 +160,9 @@ class TMonitor_mask : public TAutomask
|
||||
static void open_win_estr();
|
||||
void open_win_conf() const;
|
||||
|
||||
void fill();
|
||||
void fill() const;
|
||||
|
||||
void delete_pack(bool all = false);
|
||||
void delete_pack(bool all = false) const;
|
||||
|
||||
void sel() const;
|
||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||
@ -185,7 +183,7 @@ class TControllo_mask : public TAutomask
|
||||
bool _sel_esclusi;
|
||||
bool _is_escluso;
|
||||
TString _id_estr;
|
||||
char _tipo_doc_err;
|
||||
char _tipo_doc_err{};
|
||||
|
||||
vector<TToken_string>& import_error_list();
|
||||
void fill();
|
||||
@ -220,6 +218,7 @@ public:
|
||||
void add(long num);
|
||||
void add() { add_str("NULL"); }
|
||||
void send();
|
||||
static void del_err(const TString& id_estr, int get_int);
|
||||
static char get_errori(const TString& id_estr, vector<TToken_string>& movs);
|
||||
TF9_dberr();
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user