Merge branch 'R_10_00' of http://10.65.20.17:7990/scm/campo/campo into R_10_00

This commit is contained in:
AlexBonazzi 2018-07-24 19:51:44 +02:00
commit a5ce7bcc5a
2 changed files with 85 additions and 31 deletions

View File

@ -411,7 +411,7 @@ TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
class TPA_mask : public TAutomask class TPA_mask : public TAutomask
{ {
protected: protected:
void setFilterChanged(); void set_filter_changed();
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
void next_page(int p); void next_page(int p);
bool checkNotEmpty(); bool checkNotEmpty();
@ -425,6 +425,7 @@ protected:
public: public:
TPA_mask() : TAutomask("fp0300a"), _filter_changed(true) TPA_mask() : TAutomask("fp0300a"), _filter_changed(true)
{ {
disable(DLG_OK);
} }
}; };
@ -441,6 +442,7 @@ bool TPA_mask::is_fattura(const TRectype& doc) const
void TPA_mask::fill() void TPA_mask::fill()
{ {
TSheet_field& docs = sfield(F_DOCS); TSheet_field& docs = sfield(F_DOCS);
TString_array& sht = docs.rows_array(); TString_array& sht = docs.rows_array();
docs.hide(); docs.hide();
@ -449,6 +451,7 @@ void TPA_mask::fill()
const TDate dal = get(F_DATAINI); const TDate dal = get(F_DATAINI);
TString filter_selected = get(F_FATTSEL); TString filter_selected = get(F_FATTSEL);
enable(DLG_OK, filter_selected != "N");
// Record di controllo per eventuali elaborazioni precedenti // Record di controllo per eventuali elaborazioni precedenti
TString hfatt(LEN_HFATT), bfatt(LEN_BFATT); TString hfatt(LEN_HFATT), bfatt(LEN_BFATT);
@ -457,7 +460,7 @@ void TPA_mask::fill()
TString query; TString query;
query << "USE 33 " << query << "USE 33 " <<
"SELECT (BETWEEN(33.DATADOC,#DADATADOC,#ADATADOC))&&(33.TIPOCF=='C')&&((17.PADESTIN!='')||(20.PEC!=''))&&(400@." FLD_TIPO_SDI "!='')"; "SELECT (BETWEEN(33.DATADOC,#DADATADOC,#ADATADOC))&&(33.TIPOCF=='C')";
if(get(F_DATIPODOC).full() && get(F_ATIPODOC).full()) if(get(F_DATIPODOC).full() && get(F_ATIPODOC).full())
{ {
query << "&&(BETWEEN(33.TIPODOC, #DATIPODOC, #ATIPODOC))"; query << "&&(BETWEEN(33.TIPODOC, #DATIPODOC, #ATIPODOC))";
@ -485,6 +488,14 @@ void TPA_mask::fill()
TProgress_monitor pi(rec.items(), NULL); TProgress_monitor pi(rec.items(), NULL);
// Setto variabili di errore
static bool first;
static bool show;
static bool ask;
first = show = true;
ask = false;
for (bool okc = rec.move_first(); okc; okc = rec.move_next()) for (bool okc = rec.move_first(); okc; okc = rec.move_next())
{ {
if (!pi.add_status()) if (!pi.add_status())
@ -492,33 +503,72 @@ void TPA_mask::fill()
const TRectype& doc = rec.cursor()->curr(); const TRectype& doc = rec.cursor()->curr();
const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC)); const TTipo_documento& td = cached_tipodoc(doc.get(DOC_TIPODOC));
// Controllo che il tipo documento sia OK
if (td.tipo_doc_sdi().empty() || td.reg_fisc().empty())
continue;
bool sent = false; bool sent = false;
if (chiave_paf(doc, hfatt, bfatt)) if (chiave_paf(doc, hfatt, bfatt))
{ {
if (paf0100f.search(NULL, hfatt, bfatt)) if (paf0100f.search(NULL, hfatt, bfatt))
{ {
if (paf0100f.sq_get("P1_GESTIONE") != filter_selected)
continue;
sent = true; sent = true;
if (!filter_selected.full() || paf0100f.sq_get("P1_GESTIONE") != filter_selected) }
else if (filter_selected.not_empty())
continue; continue;
} }
}
TToken_string* row = new TToken_string; TToken_string& row = docs.row(-1);
*row = sent ? " " : "X"; row = sent ? " " : "X";
row->add(rec.get(DOC_ANNO).as_int(), 1); row.add(rec.get(DOC_ANNO).as_int(), 1);
row->add(rec.get(DOC_CODNUM).as_string()); row.add(rec.get(DOC_CODNUM).as_string());
row->add(rec.get(DOC_TIPODOC).as_string()); row.add(rec.get(DOC_TIPODOC).as_string());
row->add(td.tipo_doc_sdi()); row.add(td.tipo_doc_sdi());
row->add(rec.get(DOC_NDOC).as_int()); row.add(rec.get(DOC_NDOC).as_int());
row->add(rec.get(DOC_DATADOC).as_date()); row.add(rec.get(DOC_DATADOC).as_date());
row->add(rec.get(CFV_CODCF).as_int()); row.add(rec.get(CFV_CODCF).as_int());
row->add(rec.get("20." CLI_RAGSOC).as_string()); row.add(rec.get("20." CLI_RAGSOC).as_string());
TString rif = rec.get("17." CFV_PADESTIN).as_string(); TString rif = rec.get("17." CFV_PADESTIN).as_string();
if (rif.empty()) if (rif.empty())
rif = rec.get("20.PEC").as_string(); rif = rec.get("20.PEC").as_string();
row->add(rif); // Se è ancora vuoto potrebbe essere estero
row->add(rec.get("17." CFV_PARIFAMM).as_string()); if(rif.empty())
row->add(rec.get("20." CLI_COFI).as_string()); {
static TString codcf; codcf.cut(0) << "C|" << rec.get(CFV_CODCF).as_string();
TAnagrafica a(LF_CLIFO, codcf);
if (a.estero())
rif = "XXXXXXX";
else
{
disable(DLG_OK);
if (show)
{
// Segno la riga errata
docs.set_back_and_fore_color(COLOR_RED, COLOR_WHITE, rec.cursor()->pos());
TString msg; msg << "Trovata fattura " << rec.get(DOC_CODNUM).as_string() << "/" << rec.get(DOC_TIPODOC).as_string() << "/" << rec.get(DOC_NDOC).as_int() << " senza nessun codice destinatario/pec, Continuare?";
const bool force_stop = !yesno_box(msg);
if (!first && !ask && !force_stop)
{
show = yesno_box("Continuare a mostrare questo messaggio?");
ask = true;
}
if (force_stop)
{
row.cut(0);
docs.force_update();
docs.show();
return;
}
first = false;
}
}
}
row.add(rif);
row.add(rec.get("17." CFV_PARIFAMM).as_string());
row.add(rec.get("20." CLI_COFI).as_string());
bool split = rec.get("20." CLI_SPLITPAY).as_bool(); bool split = rec.get("20." CLI_SPLITPAY).as_bool();
if (split) if (split)
@ -530,12 +580,12 @@ void TPA_mask::fill()
split = is_split_payment(mov); split = is_split_payment(mov);
} }
} }
row->add(split ? "X" : " "); row.add(split ? "X" : " ");
const bool attach = !rec.get("COLL_GOLEM").is_empty(); const bool attach = !rec.get("COLL_GOLEM").is_empty();
row->add(attach ? "X" : " "); row.add(attach ? "X" : " ");
row->add(!td.invio_xml() ? "X" : ""); row.add(!td.invio_xml() ? "X" : "");
sht.add(row); sht.add(row);
} }
@ -543,7 +593,7 @@ void TPA_mask::fill()
docs.show(); docs.show();
} }
void TPA_mask::setFilterChanged() void TPA_mask::set_filter_changed()
{ {
_filter_changed = true; _filter_changed = true;
} }
@ -608,7 +658,7 @@ bool TPA_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{ {
if (o.dlg() >= START_MASK && o.dlg() <= END_MASK) if (o.dlg() >= START_MASK && o.dlg() <= END_MASK)
{ {
setFilterChanged(); set_filter_changed();
} }
} }
return true; return true;
@ -646,6 +696,7 @@ bool TPA_mask::checkNotEmpty()
return sheet.full(); return sheet.full();
} }
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
// TDoc2Paf // TDoc2Paf
///////////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////////////
@ -1774,14 +1825,16 @@ void TDoc2Paf::main_loop()
break; break;
} }
if (ndocs > 0) if (ndocs > 0)
{
db().sq_set_exec("UPDATE PAF0100F SET P1_GESTIONE = 'P' WHERE P1_GESTIONE = 'D'"); db().sq_set_exec("UPDATE PAF0100F SET P1_GESTIONE = 'P' WHERE P1_GESTIONE = 'D'");
db().sq_commit();
}
message_box(FR("Sono stati elaborati %d documenti"), ndocs); message_box(FR("Sono stati elaborati %d documenti"), ndocs);
} }
if (ndocs > 0 && show_log()) if (ndocs > 0)
//genera_xml(); show_log();
return;
} }
} }

View File

@ -25,6 +25,7 @@ RADIOBUTTON F_FATTSEL 25
BEGIN BEGIN
PROMPT 1 1 "Fatture da visualizzare" PROMPT 1 1 "Fatture da visualizzare"
ITEM "|Da inviare" ITEM "|Da inviare"
ITEM "D|Diagnosticate"
ITEM "P|Pronte" ITEM "P|Pronte"
ITEM "X|XML Generato" ITEM "X|XML Generato"
ITEM "E|In errore" ITEM "E|In errore"