Patch level : 12.0
Files correlati : f90100.cpp f90100d.uml f90104.sql Commento: Aggiornamenti sostanziali al programma di Archiviazione Passiva. Il funzionamento è rimasto lo stesso della versione precedente ma il giro interno del programma è stato rivisto e migliorato (si spera)
This commit is contained in:
parent
0093ebf240
commit
5b160f7fe1
@ -45,7 +45,7 @@ bool TFppro::guess_the_doc(const TLocalisamfile& mov)
|
|||||||
const real tot = mov.get_real(MOV_TOTDOC) + mov.get_real(MOV_RITFIS) + mov.get_real(MOV_RITSOC);
|
const real tot = mov.get_real(MOV_TOTDOC) + mov.get_real(MOV_RITFIS) + mov.get_real(MOV_RITSOC);
|
||||||
TString numdoc = mov.get(MOV_NUMDOCEXT);
|
TString numdoc = mov.get(MOV_NUMDOCEXT);
|
||||||
|
|
||||||
if (numdoc.empty())
|
if (numdoc.blank())
|
||||||
numdoc = mov.get(MOV_NUMDOC);
|
numdoc = mov.get(MOV_NUMDOC);
|
||||||
// Controllo datadoc - numdoc - totdoc - p.iva
|
// Controllo datadoc - numdoc - totdoc - p.iva
|
||||||
|
|
||||||
@ -58,11 +58,11 @@ bool TFppro::guess_the_doc(const TLocalisamfile& mov)
|
|||||||
"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
|
"WHERE P7_DATA = '" << mov.get_date(MOV_DATADOC).date2ansi() << "' AND \n" <<
|
||||||
"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') \n";
|
"(P7_NUMERO = '" << numdoc << "' OR P7_NUMERO LIKE '%" << numdoc << "%') \n";
|
||||||
if (statopiva.full())
|
if (statopiva.full())
|
||||||
query << "' AND \n" << "P2_FISCIVAPAESE = '" << statopiva;
|
query << " AND \n" << "P2_FISCIVAPAESE = '" << statopiva << "'";
|
||||||
query << "' AND \n" << "P2_FISCIVACOD = '" << forn.get(CLI_PAIV);
|
query << " AND \n" << "P2_FISCIVACOD = '" << forn.get(CLI_PAIV) << "'";
|
||||||
if (forn.gruppo_IVA())
|
if (forn.gruppo_IVA())
|
||||||
query << "' AND \n" "P2_COCAZZO = '" << forn.get(CLI_COFI); // cazzo;
|
query << " AND \n" "P2_COCAZZO = '" << forn.get(CLI_COFI) << "'"; // cazzo;
|
||||||
query << "PQ_IMPTOTDOC = " << tot;
|
query << " AND \n" "PQ_IMPTOTDOC = " << tot;
|
||||||
|
|
||||||
if (_db->sq_set_exec(query) && _db->sq_items() == 1)
|
if (_db->sq_set_exec(query) && _db->sq_items() == 1)
|
||||||
{
|
{
|
||||||
@ -119,6 +119,17 @@ TDate TFppro::get_datareg()
|
|||||||
return _db->sq_get_date("PZ_DATAREGCONT");
|
return _db->sq_get_date("PZ_DATAREGCONT");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TDate TFppro::get_datadoc()
|
||||||
|
{
|
||||||
|
if (!_is_set)
|
||||||
|
{
|
||||||
|
if (set_query())
|
||||||
|
return _db->sq_get_date("PZ_DATA");
|
||||||
|
return TDate();
|
||||||
|
}
|
||||||
|
return _db->sq_get_date("PZ_DATA");
|
||||||
|
}
|
||||||
|
|
||||||
TDate TFppro::get_datareg(TToken_string& keys)
|
TDate TFppro::get_datareg(TToken_string& keys)
|
||||||
{
|
{
|
||||||
set_keys(keys);
|
set_keys(keys);
|
||||||
@ -188,7 +199,7 @@ bool TFppro::associa_mov(const long numreg)
|
|||||||
if (ok) // Scrivo sul movimento il riferimento al fppro
|
if (ok) // Scrivo sul movimento il riferimento al fppro
|
||||||
{
|
{
|
||||||
mov.put(MOV_IDDOCSDI, fppro_db().get_numdoc());
|
mov.put(MOV_IDDOCSDI, fppro_db().get_numdoc());
|
||||||
mov.put(MOV_DATADOCSDI, fppro_db().get_numdoc());
|
mov.put(MOV_DATADOCSDI, fppro_db().get_datadoc());
|
||||||
mov.put(MOV_KEYFPPRO, get_keys_fppro());
|
mov.put(MOV_KEYFPPRO, get_keys_fppro());
|
||||||
ok = mov.rewrite() == NOERR;
|
ok = mov.rewrite() == NOERR;
|
||||||
}
|
}
|
||||||
|
@ -59,6 +59,7 @@ public:
|
|||||||
long get_numreg(TToken_string& keys);
|
long get_numreg(TToken_string& keys);
|
||||||
long get_codforn();
|
long get_codforn();
|
||||||
TDate get_datareg();
|
TDate get_datareg();
|
||||||
|
TDate get_datadoc();
|
||||||
TDate get_datareg(TToken_string& keys);
|
TDate get_datareg(TToken_string& keys);
|
||||||
real get_ritenute();
|
real get_ritenute();
|
||||||
TDate get_data_first_doc() const;
|
TDate get_data_first_doc() const;
|
||||||
|
@ -73,13 +73,16 @@ int TEstrai_mask::estrai()
|
|||||||
for (bool ok = mov.move_first(); progr->add_status() && ok; ok = mov.move_next())
|
for (bool ok = mov.move_first(); progr->add_status() && ok; ok = mov.move_next())
|
||||||
{
|
{
|
||||||
TToken_string elab_f9(mov.get_string(MOV_ELABF9), ';'); // Stringa del campo elaborazione f9 nel file mov
|
TToken_string elab_f9(mov.get_string(MOV_ELABF9), ';'); // Stringa del campo elaborazione f9 nel file mov
|
||||||
const bool escluso = !(elab_f9.items() == 3 && elab_f9.get_bool(2) || elab_f9.empty());
|
const bool escluso = (elab_f9.items() == 3 && elab_f9.get_bool(2));
|
||||||
const TCausale & caus = cached_causale(mov.get_string(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
|
const TCausale & caus = cached_causale(mov.get_string(MOV_CODCAUS), mov.get_date(MOV_DATAREG).year());
|
||||||
const bool stampato = mov.get_bool(MOV_REGST);
|
const bool stampato = mov.get_bool(MOV_REGST);
|
||||||
const TRegistro& reg = caus.reg();
|
const TRegistro& reg = caus.reg();
|
||||||
const TipoIVA& iva = reg.iva();
|
const TipoIVA& iva = reg.iva();
|
||||||
TString numdoc = mov.get_string(MOV_NUMDOCEXT);
|
TString numdoc = mov.get_string(MOV_NUMDOCEXT);
|
||||||
|
|
||||||
|
if (escluso)
|
||||||
|
int here = 0;
|
||||||
|
|
||||||
if (numdoc.empty())
|
if (numdoc.empty())
|
||||||
numdoc = mov.get_string(MOV_NUMDOC);
|
numdoc = mov.get_string(MOV_NUMDOC);
|
||||||
// Se definitivo controllo il flag di stampato REGST
|
// Se definitivo controllo il flag di stampato REGST
|
||||||
@ -222,10 +225,13 @@ TEstrai_mask::TEstrai_mask() : TMask("Estrazione", 1, 60, 16), _estrazione(nullp
|
|||||||
// TMonitor_mask
|
// TMonitor_mask
|
||||||
////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////
|
||||||
|
|
||||||
bool TMonitor_mask::save_conf_handler(TMask_field& f, KEY key)
|
bool TMonitor_mask::save_conf(TMask& config_mask)
|
||||||
{
|
{
|
||||||
TMask& config_mask = f.mask();
|
|
||||||
TString old_codsoc = F9CONF.get_ambiente();
|
TString old_codsoc = F9CONF.get_ambiente();
|
||||||
|
|
||||||
|
TString new_lvl = config_mask.get(CF_LVLNEW);
|
||||||
|
TString old_lvl = config_mask.get(CF_LVLOLD);
|
||||||
|
|
||||||
if(config_mask.get(CF_CODSOC).empty())
|
if(config_mask.get(CF_CODSOC).empty())
|
||||||
warning_box("Codice Ambiente vuoto. Impossibile salvare i dati.");
|
warning_box("Codice Ambiente vuoto. Impossibile salvare i dati.");
|
||||||
F9CONF.set_ambiente (config_mask.get(CF_CODSOC));
|
F9CONF.set_ambiente (config_mask.get(CF_CODSOC));
|
||||||
@ -235,6 +241,20 @@ bool TMonitor_mask::save_conf_handler(TMask_field& f, KEY key)
|
|||||||
|
|
||||||
config_mask.close();
|
config_mask.close();
|
||||||
f9_app().edit_wa(old_codsoc);
|
f9_app().edit_wa(old_codsoc);
|
||||||
|
TLocalisamfile tabmod(LF_TABMOD);
|
||||||
|
tabmod.put("MOD", "F9");
|
||||||
|
tabmod.put("COD", "SQL");
|
||||||
|
tabmod.put("CODTAB", "VERSION");
|
||||||
|
tabmod.put("S0", real(new_lvl));
|
||||||
|
|
||||||
|
if (tabmod.write_rewrite() == NOERR)
|
||||||
|
{
|
||||||
|
config_mask.set(CF_LVLOLD, new_lvl);
|
||||||
|
config_mask.set(CF_LVLNEW, "");
|
||||||
|
message_box("Versione impostata!");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
return error_box("Impossibile aggiornare il livello degli archivi");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -368,6 +388,42 @@ void TMonitor_mask::fill() const
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool TConfig_f9_mask::on_key(const KEY key)
|
||||||
|
{
|
||||||
|
if (key == K_SHIFT + K_F12)
|
||||||
|
{
|
||||||
|
if (run_fp_psw_mask())
|
||||||
|
{
|
||||||
|
enable(CF_LVLNEW);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TConfig_f9_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
|
{
|
||||||
|
switch (o.dlg())
|
||||||
|
{
|
||||||
|
case CF_LVLNEW:
|
||||||
|
if (e == fe_close)
|
||||||
|
{
|
||||||
|
TMask& config_mask = o.mask();
|
||||||
|
TString new_lvl = config_mask.get(CF_LVLNEW);
|
||||||
|
TString old_lvl = config_mask.get(CF_LVLOLD);
|
||||||
|
|
||||||
|
if (new_lvl.empty())
|
||||||
|
return o.error_box("Livello Patch non conforme. Impossibile aggiornare");
|
||||||
|
|
||||||
|
if (new_lvl > old_lvl)
|
||||||
|
return o.error_box("Per impostare un livello patch superiore dell'attuale\nè sufficente riavviare il programma.");
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
bool TMonitor_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
bool TMonitor_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
|
||||||
{
|
{
|
||||||
switch (o.dlg())
|
switch (o.dlg())
|
||||||
@ -452,7 +508,14 @@ void TMonitor_mask::open_win_estr()
|
|||||||
|
|
||||||
void TMonitor_mask::open_win_conf()
|
void TMonitor_mask::open_win_conf()
|
||||||
{
|
{
|
||||||
TMask m("Configurazione Archiviazione Sostitutiva", 1, 70, 20);
|
TConfig_f9_mask m("Configurazione Archiviazione Sostitutiva", 1, 70, 30, 55, 5);
|
||||||
|
|
||||||
|
TLocalisamfile tabmod(LF_TABMOD);
|
||||||
|
tabmod.put("MOD", "F9");
|
||||||
|
tabmod.put("COD", "SQL");
|
||||||
|
tabmod.put("CODTAB", "VERSION");
|
||||||
|
const bool exists = tabmod.read() == NOERR;
|
||||||
|
int version = exists ? real(tabmod.get(TABMOD_TABVER)).integer() : TAB_BASE_VERSION - 2;
|
||||||
|
|
||||||
m.add_button_tool(DLG_OK, "Conferma", TOOL_OK);
|
m.add_button_tool(DLG_OK, "Conferma", TOOL_OK);
|
||||||
m.add_button_tool(DLG_NULL, "", 0);
|
m.add_button_tool(DLG_NULL, "", 0);
|
||||||
@ -465,14 +528,22 @@ void TMonitor_mask::open_win_conf()
|
|||||||
m.add_string (CF_ADDRDOCLOC, 0, "Locale ", 2, 5, 256, "", 40);
|
m.add_string (CF_ADDRDOCLOC, 0, "Locale ", 2, 5, 256, "", 40);
|
||||||
m.add_groupbox (CF_ESTRGROUP, 0, "Opzioni estrazione", 1, 7, 69, 4, "");
|
m.add_groupbox (CF_ESTRGROUP, 0, "Opzioni estrazione", 1, 7, 69, 4, "");
|
||||||
m.add_boolean (CF_CARTEXP, 0, "Estrai anche documenti cartacei", 2, 8);
|
m.add_boolean (CF_CARTEXP, 0, "Estrai anche documenti cartacei", 2, 8);
|
||||||
|
m.add_groupbox (CF_LVLGROUP, 0, "Livello Patch Tabelle F9", 1, 11, 69, 4, "");
|
||||||
m.set_handler(DLG_OK, save_conf_handler);
|
m.add_string (CF_LVLOLD, 0, "Livello Attuale", 35, 12, 10, "D", 10);
|
||||||
|
m.add_string (CF_LVLNEW, 0, "Nuovo Livello ", 2, 12, 10, "D", 10);
|
||||||
|
m.set_handlers();
|
||||||
|
|
||||||
m.set(CF_CODSOC, F9CONF.get_ambiente());
|
m.set(CF_CODSOC, F9CONF.get_ambiente());
|
||||||
m.set(CF_ADDRDOC, F9CONF.get_addr_doc());
|
m.set(CF_ADDRDOC, F9CONF.get_addr_doc());
|
||||||
m.set(CF_ADDRDOCLOC, F9CONF.get_addr_doc_loc());
|
m.set(CF_ADDRDOCLOC, F9CONF.get_addr_doc_loc());
|
||||||
m.set(CF_CARTEXP, F9CONF.get_has_cartexp());
|
m.set(CF_CARTEXP, F9CONF.get_has_cartexp());
|
||||||
m.run();
|
m.set(CF_LVLOLD, version);
|
||||||
|
|
||||||
|
|
||||||
|
m.disable(CF_LVLOLD);
|
||||||
|
if(m.run()==K_ENTER)
|
||||||
|
save_conf(m);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void TMonitor_mask::sel() const
|
void TMonitor_mask::sel() const
|
||||||
@ -558,6 +629,7 @@ void TControllo_mask::conferma_esclusi() const
|
|||||||
query << "UPDATE " F9_ERR " SET ESCLUSO = 'Si' WHERE " ERR_CODSOC " = '" << _cod_soc << "' AND IDESTR = '" <<
|
query << "UPDATE " F9_ERR " SET ESCLUSO = 'Si' WHERE " ERR_CODSOC " = '" << _cod_soc << "' AND IDESTR = '" <<
|
||||||
_id_estr << "' AND NUMREG = '" << nreg << "';";
|
_id_estr << "' AND NUMREG = '" << nreg << "';";
|
||||||
fp_db().sq_set_exec(query);
|
fp_db().sq_set_exec(query);
|
||||||
|
fp_db().sq_commit();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -571,6 +643,7 @@ void TControllo_mask::conferma_esclusi() const
|
|||||||
query << "UPDATE " F9_ERR " SET ESCLUSO = NULL WHERE " ERR_CODSOC " = '" << _cod_soc << "' AND IDESTR = '" <<
|
query << "UPDATE " F9_ERR " SET ESCLUSO = NULL WHERE " ERR_CODSOC " = '" << _cod_soc << "' AND IDESTR = '" <<
|
||||||
_id_estr << "' AND NUMREG = '" << nreg << "';";
|
_id_estr << "' AND NUMREG = '" << nreg << "';";
|
||||||
fp_db().sq_set_exec(query);
|
fp_db().sq_set_exec(query);
|
||||||
|
fp_db().sq_commit();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -628,10 +701,7 @@ void TControllo_mask::fill_fppro_sheet() const
|
|||||||
TString query;
|
TString query;
|
||||||
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT,\n" <<
|
query << "SELECT PQ_KEYPRGINVIO AS KEYPRGINVIO, PQ_KEYHEADERFATT AS KEYHEADERFATT, PQ_KEYBODYFATT AS KEYBODYFATT,\n" <<
|
||||||
"PZ_TIPODOC AS TIPODOC, P7_DATA AS DATA, P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC,\n" <<
|
"PZ_TIPODOC AS TIPODOC, P7_DATA AS DATA, P7_NUMERO AS NUMDOC, PQ_IMPTOTDOC AS IMPTOTDOC,\n" <<
|
||||||
"CASE\n" <<
|
"PZ_CLIFOR AS FORNITORE, " <<
|
||||||
"WHEN PZ_CLIFOR <> '' THEN CAST(PZ_CLIFOR AS NUMERIC(10, 0))\n" <<
|
|
||||||
"WHEN PZ_CLIFOR = '' THEN 0\n" <<
|
|
||||||
"END AS FORNITORE, " <<
|
|
||||||
"P2_ANADENOMIN AS RAGSOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
"P2_ANADENOMIN AS RAGSOC, P2_FISCIVAPAESE AS STATOPIVA, P2_FISCIVACOD AS PIVA FROM PAA2700F\n" <<
|
||||||
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
"JOIN PAA0700F ON PQ_KEYPRGINVIO = P7_KEYPRGINVIO AND PQ_KEYHEADERFATT = P7_KEYHEADERFATT AND PQ_KEYBODYFATT = P7_KEYBODYFATT\n" <<
|
||||||
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
"JOIN PAA0200F ON PQ_KEYPRGINVIO = P2_KEYPRGINVIO AND PQ_KEYHEADERFATT = P2_KEYHEADERFATT AND PQ_KEYBODYFATT = P2_KEYBODYFATT\n" <<
|
||||||
@ -1017,6 +1087,7 @@ void TApri_estr_msk::fill_res() const
|
|||||||
{
|
{
|
||||||
TString query;
|
TString query;
|
||||||
query << "SELECT * FROM " F9_MOVESTR "\n"
|
query << "SELECT * FROM " F9_MOVESTR "\n"
|
||||||
|
"INNER JOIN " F9_IVA " ON " IVA_IDLAN " = " MES_IDESTR " AND " IVA_NUMOR " = " MES_NUMREG "\n"
|
||||||
"WHERE " MES_CODSOC " = '" << F9CONF.get_ambiente() << "' AND " MES_IDESTR " = '" << _idestr << "'";
|
"WHERE " MES_CODSOC " = '" << F9CONF.get_ambiente() << "' AND " MES_IDESTR " = '" << _idestr << "'";
|
||||||
|
|
||||||
fp_db().sq_set_exec(query, false);
|
fp_db().sq_set_exec(query, false);
|
||||||
@ -1026,18 +1097,21 @@ void TApri_estr_msk::fill_res() const
|
|||||||
sf.reset();
|
sf.reset();
|
||||||
for (bool ok = fp_db().sq_next(); prog.add_status() && ok; ok = fp_db().sq_next())
|
for (bool ok = fp_db().sq_next(); prog.add_status() && ok; ok = fp_db().sq_next())
|
||||||
{
|
{
|
||||||
|
|
||||||
|
TString td = fp_db().sq_get(IVA_CAUSSOS);
|
||||||
const TRectype & mov = cache().get(LF_MOV, fp_db().sq_get(MES_NUMREG));
|
const TRectype & mov = cache().get(LF_MOV, fp_db().sq_get(MES_NUMREG));
|
||||||
const int row = sf.set_row_cell(F_RSEL, fp_db().sq_get_int(MES_ESTR) ? "X" : " "); // Estratto
|
const int row = sf.set_row_cell(F_RSEL, fp_db().sq_get_int(MES_ESTR) ? "X" : " "); // Estratto
|
||||||
|
|
||||||
sf.set_row_cell(F_RNUMREG, mov.get(MOV_NUMREG), row); // Numreg
|
sf.set_row_cell(F_RNUMREG, mov.get(MOV_NUMREG), row); // Numreg
|
||||||
sf.set_row_cell(F_RDATAREG, mov.get_date(MOV_DATAREG), row); // Data reg
|
sf.set_row_cell(F_RDATAREG, mov.get_date(MOV_DATAREG), row); // Data reg
|
||||||
sf.set_row_cell(F_RDATADOC, mov.get_date(MOV_DATADOC), row); // Data doc
|
sf.set_row_cell(F_RDATADOC, mov.get_date(MOV_DATADOC), row); // Data doc
|
||||||
|
sf.set_row_cell(F_RTIPODOCSDI, td, row); // Tipo Doc SDI
|
||||||
sf.set_row_cell(F_RCODCAUS, mov.get(MOV_CODCAUS), row); // Cod caus
|
sf.set_row_cell(F_RCODCAUS, mov.get(MOV_CODCAUS), row); // Cod caus
|
||||||
sf.set_row_cell(F_RTIPOMOV, mov.get(MOV_TIPODOC), row); // Tipo doc
|
sf.set_row_cell(F_RTIPOMOV, mov.get(MOV_TIPODOC), row); // Tipo doc
|
||||||
sf.set_row_cell(F_RMESELIQ, mov.get_int(MOV_MESELIQ), row); // Mese liq
|
sf.set_row_cell(F_RMESELIQ, mov.get_int(MOV_MESELIQ), row); // Mese liq
|
||||||
sf.set_row_cell(F_RNUMDOC, mov.get(MOV_NUMDOC), row); // Num doc
|
sf.set_row_cell(F_RNUMDOC, mov.get(MOV_NUMDOC), row); // Num doc
|
||||||
sf.set_row_cell(F_RIMPTOTDOC, mov.get_real(MOV_TOTDOC), row); // Tot doc
|
sf.set_row_cell(F_RIMPTOTDOC, mov.get_real(MOV_TOTDOC), row); // Tot doc
|
||||||
sf.set_row_cell(F_RFORN, mov.get_int(MOV_CODCF), row); // Clifo
|
sf.set_row_cell(F_RFORN, mov.get_int(MOV_CODCF), row); // Clifo
|
||||||
|
|
||||||
TToken_string key(mov.get(MOV_TIPO));
|
TToken_string key(mov.get(MOV_TIPO));
|
||||||
|
|
||||||
@ -1462,6 +1536,9 @@ bool TF9_app::check_tab_version() const
|
|||||||
int version = exists ? real(tabmod.get(TABMOD_TABVER)).integer() : TAB_BASE_VERSION - 2;
|
int version = exists ? real(tabmod.get(TABMOD_TABVER)).integer() : TAB_BASE_VERSION - 2;
|
||||||
if (version < SQL_VERSION) // Controllo la versione
|
if (version < SQL_VERSION) // Controllo la versione
|
||||||
{
|
{
|
||||||
|
if(version<TAB_BASE_VERSION)
|
||||||
|
version = TAB_BASE_VERSION;
|
||||||
|
|
||||||
for (; version < SQL_VERSION; version += 2) // Effettuo le modifiche per ogni avanzamento di versione
|
for (; version < SQL_VERSION; version += 2) // Effettuo le modifiche per ogni avanzamento di versione
|
||||||
{
|
{
|
||||||
if (ok &= aggiorna_tab_f9(version + 2))
|
if (ok &= aggiorna_tab_f9(version + 2))
|
||||||
|
@ -74,7 +74,10 @@ class TMonitor_mask : public TAutomask
|
|||||||
TApri_estr_msk _inclusi_mask;
|
TApri_estr_msk _inclusi_mask;
|
||||||
|
|
||||||
// Configurazione mask
|
// Configurazione mask
|
||||||
static bool save_conf_handler(TMask_field& f, KEY key);
|
bool save_conf(TMask& m);
|
||||||
|
|
||||||
|
// Forza Aggiornamento LVL Patch delle tabelle F9
|
||||||
|
static bool update_table_level(TMask_field& f, KEY key);
|
||||||
|
|
||||||
// Metodi per la maschera 'Apri Estr.'
|
// Metodi per la maschera 'Apri Estr.'
|
||||||
|
|
||||||
@ -84,10 +87,10 @@ class TMonitor_mask : public TAutomask
|
|||||||
void controllo_errori() const;
|
void controllo_errori() const;
|
||||||
static void delete_estr_fld(const TString& idestr);
|
static void delete_estr_fld(const TString& idestr);
|
||||||
void delete_pack(bool all = false) const;
|
void delete_pack(bool all = false) const;
|
||||||
|
|
||||||
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly) override;
|
||||||
static void open_win_estr();
|
static void open_win_estr();
|
||||||
static void open_win_conf();
|
void open_win_conf();
|
||||||
void sel() const;
|
void sel() const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -98,6 +101,19 @@ public:
|
|||||||
~TMonitor_mask() {}
|
~TMonitor_mask() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class TConfig_f9_mask: public TAutomask
|
||||||
|
{
|
||||||
|
protected:
|
||||||
|
bool on_key(const KEY key);
|
||||||
|
bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||||
|
|
||||||
|
public:
|
||||||
|
// @cmember Costruttore (crea la maschera leggendo la descrizione dal file .msk)
|
||||||
|
TConfig_f9_mask(const char* filename, int num = 0) : TAutomask(filename, num) {};
|
||||||
|
// @cmember Costruttore (crea una maschera vuota con i parametri dati)
|
||||||
|
TConfig_f9_mask(const char* title, int pages, int cols, int rows, int xpos = -1, int ypos = -1) : TAutomask(title, pages, cols, rows, xpos, ypos) {};
|
||||||
|
};
|
||||||
|
|
||||||
class TControllo_mask : public TAutomask
|
class TControllo_mask : public TAutomask
|
||||||
{
|
{
|
||||||
TArray _controllo_mov; // Usare import_error_list().
|
TArray _controllo_mov; // Usare import_error_list().
|
||||||
|
@ -52,6 +52,11 @@
|
|||||||
#define CF_ADDRDOCLOC 505
|
#define CF_ADDRDOCLOC 505
|
||||||
#define CF_ESTRGROUP 506
|
#define CF_ESTRGROUP 506
|
||||||
#define CF_CARTEXP 507
|
#define CF_CARTEXP 507
|
||||||
|
#define CF_LVLGROUP 508
|
||||||
|
#define CF_LVLOLD 509
|
||||||
|
#define CF_LVLNEW 510
|
||||||
|
#define CF_TABLEVEL 511
|
||||||
|
|
||||||
|
|
||||||
// Campi maschera descrizione estrazione
|
// Campi maschera descrizione estrazione
|
||||||
#define DES_TEXT 501
|
#define DES_TEXT 501
|
||||||
|
@ -35,13 +35,14 @@
|
|||||||
#define F_RNUMREG 102
|
#define F_RNUMREG 102
|
||||||
#define F_RDATAREG 103
|
#define F_RDATAREG 103
|
||||||
#define F_RDATADOC 104
|
#define F_RDATADOC 104
|
||||||
#define F_RCODCAUS 105
|
#define F_RTIPODOCSDI 105
|
||||||
#define F_RTIPOMOV 106
|
#define F_RCODCAUS 106
|
||||||
#define F_RMESELIQ 107
|
#define F_RTIPOMOV 107
|
||||||
#define F_RNUMDOC 108
|
#define F_RMESELIQ 108
|
||||||
#define F_RIMPTOTDOC 109
|
#define F_RNUMDOC 109
|
||||||
#define F_RFORN 110
|
#define F_RIMPTOTDOC 110
|
||||||
#define F_RRAGSOC 111
|
#define F_RFORN 111
|
||||||
#define F_RPROTIVA 112
|
#define F_RRAGSOC 112
|
||||||
#define F_RDESCR 113
|
#define F_RPROTIVA 113
|
||||||
#define F_RDESCRERR 114
|
#define F_RDESCR 114
|
||||||
|
#define F_RDESCRERR 115
|
||||||
|
@ -138,8 +138,9 @@ BEGIN
|
|||||||
ITEM "Numero\nReg.@8"
|
ITEM "Numero\nReg.@8"
|
||||||
ITEM "Data\nReg.@8"
|
ITEM "Data\nReg.@8"
|
||||||
ITEM "Data\nDoc.@8"
|
ITEM "Data\nDoc.@8"
|
||||||
|
ITEM "Tipo Doc\nSDI@9"
|
||||||
ITEM "Codice\nCaus.@8"
|
ITEM "Codice\nCaus.@8"
|
||||||
ITEM "Tipo Doc.@5"
|
ITEM "Tipo Mov.@5"
|
||||||
ITEM "Mese\nliquidazione@8"
|
ITEM "Mese\nliquidazione@8"
|
||||||
ITEM "Numero\nDocumento@8"
|
ITEM "Numero\nDocumento@8"
|
||||||
ITEM "Totale\nDocumento@8"
|
ITEM "Totale\nDocumento@8"
|
||||||
@ -305,63 +306,69 @@ BEGIN
|
|||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RCODCAUS 3
|
STRING F_RTIPODOCSDI 4
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 5 ""
|
PROMPT 1 5 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RTIPOMOV 3
|
STRING F_RCODCAUS 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 6 ""
|
PROMPT 1 6 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMERIC F_RMESELIQ 2
|
STRING F_RTIPOMOV 3
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 7 ""
|
PROMPT 1 7 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RNUMDOC 50
|
NUMERIC F_RMESELIQ 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 8 ""
|
PROMPT 1 8 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMERIC F_RIMPTOTDOC 15 2
|
STRING F_RNUMDOC 50
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 9 ""
|
PROMPT 1 9 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
NUMERIC F_RFORN 6
|
NUMERIC F_RIMPTOTDOC 15 2
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 10 ""
|
PROMPT 1 10 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RRAGSOC 80
|
NUMERIC F_RFORN 6
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 11 ""
|
PROMPT 1 11 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RPROTIVA 10
|
STRING F_RRAGSOC 80
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 12 ""
|
PROMPT 1 12 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
STRING F_RDESCR 50
|
STRING F_RPROTIVA 10
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 13 ""
|
PROMPT 1 13 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
STRING F_RDESCR 50
|
||||||
|
BEGIN
|
||||||
|
PROMPT 1 14 ""
|
||||||
|
FLAGS "D"
|
||||||
|
END
|
||||||
|
|
||||||
STRING F_RDESCRERR 92
|
STRING F_RDESCRERR 92
|
||||||
BEGIN
|
BEGIN
|
||||||
PROMPT 1 13 ""
|
PROMPT 1 15 ""
|
||||||
FLAGS "D"
|
FLAGS "D"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
@ -638,6 +638,8 @@ bool TEstrazione::insert_into_f9movestr() const
|
|||||||
|
|
||||||
TProgress_monitor prog(_movs.size(), "Salvataggio informazioni estrazione", false);
|
TProgress_monitor prog(_movs.size(), "Salvataggio informazioni estrazione", false);
|
||||||
|
|
||||||
|
//QUI ANDRA' CONTROLLATO IL PAFW300
|
||||||
|
|
||||||
FOR_EACH_ARRAY_ITEM(_movs, r, obj)
|
FOR_EACH_ARRAY_ITEM(_movs, r, obj)
|
||||||
{
|
{
|
||||||
if(prog.add_status())
|
if(prog.add_status())
|
||||||
@ -798,6 +800,7 @@ const char* TEstrazione::diagnostica_mov()
|
|||||||
TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
|
TMovimento_estr & mov_i = (TMovimento_estr &)*obj;
|
||||||
|
|
||||||
// Se gia' escluso passo avanti
|
// Se gia' escluso passo avanti
|
||||||
|
|
||||||
if (!mov_i.estratto() && mov_i.descr_estr() == mov_escluso)
|
if (!mov_i.estratto() && mov_i.descr_estr() == mov_escluso)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
@ -1115,6 +1118,7 @@ bool TEstrazione::estrazione_iva(bool escluso)
|
|||||||
iva_query.add(IVA_DOCXML, mov_i.cartaceo() ? 'N' : 'S');
|
iva_query.add(IVA_DOCXML, mov_i.cartaceo() ? 'N' : 'S');
|
||||||
iva_query.add(IVA_TIPOCF, mov.get_char(MOV_TIPO));
|
iva_query.add(IVA_TIPOCF, mov.get_char(MOV_TIPO));
|
||||||
iva_query.add(IVA_CODCF, mov.get_long(MOV_CODCF));
|
iva_query.add(IVA_CODCF, mov.get_long(MOV_CODCF));
|
||||||
|
iva_query.add(IVA_NUMOR, mov.get_long(MOV_NUMREG));
|
||||||
|
|
||||||
iva_query.add(IVA_RAGSOC, cli.get(CLI_RAGSOC), 60);
|
iva_query.add(IVA_RAGSOC, cli.get(CLI_RAGSOC), 60);
|
||||||
iva_query.add(IVA_IDFISC, idfisc, 30);
|
iva_query.add(IVA_IDFISC, idfisc, 30);
|
||||||
@ -1125,7 +1129,22 @@ bool TEstrazione::estrazione_iva(bool escluso)
|
|||||||
const TRegistro& reg = cached_registro(mov.get(MOV_REG), mov.get_int(MOV_ANNOIVA));
|
const TRegistro& reg = cached_registro(mov.get(MOV_REG), mov.get_int(MOV_ANNOIVA));
|
||||||
|
|
||||||
if (reg.iva() == iva_vendite)
|
if (reg.iva() == iva_vendite)
|
||||||
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6); //
|
{
|
||||||
|
int anno = mov.get_int(MOV_DANNO);
|
||||||
|
|
||||||
|
if (anno > 0)
|
||||||
|
{
|
||||||
|
const char provv = mov.get(MOV_DPROVV)[0];
|
||||||
|
const TString& codnum = mov.get(MOV_DCODNUM);
|
||||||
|
const long ndoc = mov.get_long(MOV_DNDOC);
|
||||||
|
|
||||||
|
TDocumento doc(provv, anno, codnum, ndoc);
|
||||||
|
iva_query.add(IVA_CAUSSOS, tipo_doc_sdi(doc) , 6);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
iva_query.add(IVA_CAUSSOS, mov_i.catdoc(categorie_doc())->caus_sost(), 6);
|
||||||
|
}
|
||||||
|
//
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
|
TToken_string key(mov.get((MOV_KEYFPPRO)), ';');
|
||||||
|
@ -1,17 +1,26 @@
|
|||||||
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'F9DRT00K' and COLUMN_NAME = 'F9TFCEE')
|
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'F9DRT00K' and COLUMN_NAME = 'F9TFCEE')
|
||||||
ALTER TABLE F9DRT00K ADD F9TFCEE CHAR(6) NOT NULL DEFAULT '';
|
ALTER TABLE F9DRT00K ADD F9TFCEE CHAR(6) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
CREATE TABLE F9MOVESTR(
|
IF NOT EXISTS (SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'F9MOVESTR')
|
||||||
IDSOC CHAR(10) NOT NULL,
|
CREATE TABLE F9MOVESTR(
|
||||||
IDESTR CHAR(18) NOT NULL,
|
IDSOC CHAR(10) NOT NULL,
|
||||||
NUMREG NUMERIC(7,0) NOT NULL,
|
IDESTR CHAR(18) NOT NULL,
|
||||||
DATAREG DATE,
|
NUMREG NUMERIC(7,0) NOT NULL,
|
||||||
ESTRATTO BIT DEFAULT '0' NOT NULL,
|
DATAREG DATE,
|
||||||
DESCR_ERR VARCHAR(1024)
|
ESTRATTO BIT DEFAULT '0' NOT NULL,
|
||||||
);
|
DESCR_ERR VARCHAR(1024)
|
||||||
ALTER TABLE F9MOVESTR ADD CONSTRAINT F9MOVESTR_PK PRIMARY KEY(IDSOC, IDESTR, NUMREG);
|
)
|
||||||
|
ELSE
|
||||||
|
SELECT 1 AS EXIST;
|
||||||
|
|
||||||
|
|
||||||
|
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.CONSTRAINT_COLUMN_USAGE WHERE TABLE_NAME = 'F9MOVESTR' AND CONSTRAINT_NAME = 'F9MOVESTR_PK' )
|
||||||
|
ALTER TABLE F9MOVESTR ADD CONSTRAINT F9MOVESTR_PK PRIMARY KEY(IDSOC, IDESTR, NUMREG);
|
||||||
|
|
||||||
|
IF NOT EXISTS(SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'F9ERROR' AND COLUMN_NAME = 'IDSOC')
|
||||||
|
ALTER TABLE F9ERROR ADD IDSOC CHAR(10) NOT NULL DEFAULT '';
|
||||||
|
|
||||||
|
|
||||||
ALTER TABLE F9ERROR ADD IDSOC CHAR(10) NOT NULL DEFAULT '';
|
|
||||||
DECLARE @name nvarchar(128), @sql NVARCHAR(MAX)
|
DECLARE @name nvarchar(128), @sql NVARCHAR(MAX)
|
||||||
SELECT @name = name
|
SELECT @name = name
|
||||||
FROM sys.key_constraints
|
FROM sys.key_constraints
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <mov.h>
|
#include <mov.h>
|
||||||
#include "../cg/cgsaldac.h"
|
#include "../cg/cgsaldac.h"
|
||||||
#include <scadenze.h>
|
#include <scadenze.h>
|
||||||
|
#include <utility.h>
|
||||||
|
|
||||||
bool set_connection(SSimple_query& s)
|
bool set_connection(SSimple_query& s)
|
||||||
{
|
{
|
||||||
@ -64,7 +65,7 @@ bool run_fp_psw_mask()
|
|||||||
m.field(101).check_type(CHECK_REQUIRED);
|
m.field(101).check_type(CHECK_REQUIRED);
|
||||||
while (m.run() == K_ENTER)
|
while (m.run() == K_ENTER)
|
||||||
{
|
{
|
||||||
if (m.get(101) == "sirioFATT99") // Hardcoded password are the best!
|
if (m.get(101) == "sirioFATT99"||(is_power_station())) // Hardcoded password are the best!
|
||||||
return true;
|
return true;
|
||||||
else
|
else
|
||||||
return error_box("Password errata");
|
return error_box("Password errata");
|
||||||
|
@ -30,10 +30,10 @@ private:
|
|||||||
static bool universal_notifier(TSheet_field& f, int row, KEY k);
|
static bool universal_notifier(TSheet_field& f, int row, KEY k);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void set_handlers();
|
|
||||||
TField_event key2event(TMask_field& f, KEY key) const;
|
TField_event key2event(TMask_field& f, KEY key) const;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
void set_handlers();
|
||||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly) pure;
|
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly) pure;
|
||||||
bool error_box(const char* fmt, ...); // No more f.error_box
|
bool error_box(const char* fmt, ...); // No more f.error_box
|
||||||
void set_universal_handler(const short id) { set_handler(id, universal_handler);}
|
void set_universal_handler(const short id) { set_handler(id, universal_handler);}
|
||||||
|
@ -1675,6 +1675,8 @@ void TMask::set(
|
|||||||
// @syntax set(short fld_id, long n, bool hit);
|
// @syntax set(short fld_id, long n, bool hit);
|
||||||
{
|
{
|
||||||
TMask_field& f = field(fld_id);
|
TMask_field& f = field(fld_id);
|
||||||
|
if (fld_id == 214)
|
||||||
|
int i = 0;
|
||||||
|
|
||||||
f.set(s);
|
f.set(s);
|
||||||
if ((f.active() || f.ghost()))
|
if ((f.active() || f.ghost()))
|
||||||
@ -2980,12 +2982,18 @@ void set_iban_fields(const char * iban, TMask & mask,
|
|||||||
const bool italy = iso.blank() || (iso == "IT");
|
const bool italy = iso.blank() || (iso == "IT");
|
||||||
|
|
||||||
enable_iban_fields(mask, fldbban, fldbcin, fldabi, fldcab, fldcc, flddes, italy, pres);
|
enable_iban_fields(mask, fldbban, fldbcin, fldabi, fldcab, fldcc, flddes, italy, pres);
|
||||||
mask.set(fldiso, iso);
|
if (iso.full() || mask.get(fldiso).blank())
|
||||||
mask.set(fldcin, cin);
|
mask.set(fldiso, iso);
|
||||||
|
if (cin.full() || mask.get(fldcin).blank())
|
||||||
|
mask.set(fldcin, cin);
|
||||||
if (fldbban > 0)
|
if (fldbban > 0)
|
||||||
mask.set(fldbban, italy ? wiban.mid(4) : cc);
|
mask.set(fldbban, italy ? wiban.mid(4) : cc);
|
||||||
mask.set(fldbcin, bcin);
|
if(bcin.full() || mask.get(fldbban).blank())
|
||||||
mask.set(fldabi, abi);
|
mask.set(fldbcin, bcin);
|
||||||
mask.set(fldcab, cab);
|
if(abi.full() || mask.get(fldabi).blank())
|
||||||
mask.set(fldcc, italy ? cc : EMPTY_STRING);
|
mask.set(fldabi, abi);
|
||||||
|
if(cab.full() || mask.get(fldcab).blank())
|
||||||
|
mask.set(fldcab, cab);
|
||||||
|
if (cc.full() || mask.get(fldcc).blank())
|
||||||
|
mask.set(fldcc, italy ? cc : EMPTY_STRING);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user