Patch level : 12.0
Files correlati : fp Commento : - Aggiunto stato "D" alla ricerca o si rischiavano di perdere fatture nel limbo - Aggiunti controlli nella visualizzazione di fatture - Sistemata la gestione dei filtri
This commit is contained in:
parent
0a323b2c6f
commit
747f18f1fa
@ -411,7 +411,7 @@ TPaf_record::TPaf_record(const char* table) : _table(table), _key(15, ',')
|
||||
class TPA_mask : public TAutomask
|
||||
{
|
||||
protected:
|
||||
void setFilterChanged();
|
||||
void set_filter_changed();
|
||||
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
|
||||
void next_page(int p);
|
||||
bool checkNotEmpty();
|
||||
@ -425,6 +425,7 @@ protected:
|
||||
public:
|
||||
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()
|
||||
{
|
||||
|
||||
TSheet_field& docs = sfield(F_DOCS);
|
||||
TString_array& sht = docs.rows_array();
|
||||
docs.hide();
|
||||
@ -448,7 +450,8 @@ void TPA_mask::fill()
|
||||
sht.destroy();
|
||||
|
||||
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
|
||||
TString hfatt(LEN_HFATT), bfatt(LEN_BFATT);
|
||||
@ -457,7 +460,7 @@ void TPA_mask::fill()
|
||||
TString query;
|
||||
|
||||
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())
|
||||
{
|
||||
query << "&&(BETWEEN(33.TIPODOC, #DATIPODOC, #ATIPODOC))";
|
||||
@ -485,6 +488,14 @@ void TPA_mask::fill()
|
||||
|
||||
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())
|
||||
{
|
||||
if (!pi.add_status())
|
||||
@ -492,33 +503,72 @@ void TPA_mask::fill()
|
||||
const TRectype& doc = rec.cursor()->curr();
|
||||
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;
|
||||
if (chiave_paf(doc, hfatt, bfatt))
|
||||
{
|
||||
if (paf0100f.search(NULL, hfatt, bfatt))
|
||||
{
|
||||
sent = true;
|
||||
if (!filter_selected.full() || paf0100f.sq_get("P1_GESTIONE") != filter_selected)
|
||||
continue;
|
||||
}
|
||||
if (paf0100f.search(NULL, hfatt, bfatt))
|
||||
{
|
||||
if (paf0100f.sq_get("P1_GESTIONE") != filter_selected)
|
||||
continue;
|
||||
sent = true;
|
||||
}
|
||||
else if (filter_selected.not_empty())
|
||||
continue;
|
||||
}
|
||||
|
||||
TToken_string* row = new TToken_string;
|
||||
*row = sent ? " " : "X";
|
||||
row->add(rec.get(DOC_ANNO).as_int(), 1);
|
||||
row->add(rec.get(DOC_CODNUM).as_string());
|
||||
row->add(rec.get(DOC_TIPODOC).as_string());
|
||||
row->add(td.tipo_doc_sdi());
|
||||
row->add(rec.get(DOC_NDOC).as_int());
|
||||
row->add(rec.get(DOC_DATADOC).as_date());
|
||||
row->add(rec.get(CFV_CODCF).as_int());
|
||||
row->add(rec.get("20." CLI_RAGSOC).as_string());
|
||||
TToken_string& row = docs.row(-1);
|
||||
row = sent ? " " : "X";
|
||||
row.add(rec.get(DOC_ANNO).as_int(), 1);
|
||||
row.add(rec.get(DOC_CODNUM).as_string());
|
||||
row.add(rec.get(DOC_TIPODOC).as_string());
|
||||
row.add(td.tipo_doc_sdi());
|
||||
row.add(rec.get(DOC_NDOC).as_int());
|
||||
row.add(rec.get(DOC_DATADOC).as_date());
|
||||
row.add(rec.get(CFV_CODCF).as_int());
|
||||
row.add(rec.get("20." CLI_RAGSOC).as_string());
|
||||
TString rif = rec.get("17." CFV_PADESTIN).as_string();
|
||||
if (rif.empty())
|
||||
rif = rec.get("20.PEC").as_string();
|
||||
row->add(rif);
|
||||
row->add(rec.get("17." CFV_PARIFAMM).as_string());
|
||||
row->add(rec.get("20." CLI_COFI).as_string());
|
||||
// Se è ancora vuoto potrebbe essere estero
|
||||
if(rif.empty())
|
||||
{
|
||||
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();
|
||||
if (split)
|
||||
@ -530,12 +580,12 @@ void TPA_mask::fill()
|
||||
split = is_split_payment(mov);
|
||||
}
|
||||
}
|
||||
row->add(split ? "X" : " ");
|
||||
row.add(split ? "X" : " ");
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
@ -543,7 +593,7 @@ void TPA_mask::fill()
|
||||
docs.show();
|
||||
}
|
||||
|
||||
void TPA_mask::setFilterChanged()
|
||||
void TPA_mask::set_filter_changed()
|
||||
{
|
||||
_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)
|
||||
{
|
||||
setFilterChanged();
|
||||
set_filter_changed();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
@ -646,6 +696,7 @@ bool TPA_mask::checkNotEmpty()
|
||||
return sheet.full();
|
||||
}
|
||||
|
||||
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
// TDoc2Paf
|
||||
/////////////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -25,6 +25,7 @@ RADIOBUTTON F_FATTSEL 25
|
||||
BEGIN
|
||||
PROMPT 1 1 "Fatture da visualizzare"
|
||||
ITEM "|Da inviare"
|
||||
ITEM "D|Diagnosticate"
|
||||
ITEM "P|Pronte"
|
||||
ITEM "X|XML Generato"
|
||||
ITEM "E|In errore"
|
||||
|
Loading…
x
Reference in New Issue
Block a user