Patch level : 12.0 nopatch

Files correlati     : fp0700.cpp, fp0700a.h, fp0700a.uml, fplib.h, fplib01.cpp
Commento:
Modifiche Integrazioni per reinvio modifica provvisorio
This commit is contained in:
Simoe 2022-02-18 11:21:01 +01:00
parent 8c293c2964
commit a08d9fc134
5 changed files with 157 additions and 121 deletions

View File

@ -34,7 +34,7 @@ protected:
bool on_key(KEY key) override;
bool check_not_empty();
bool check_full_fields() const;
void set_err_paf();
void delete_paf();
void fill();
void init();
void force_reload_sheet();
@ -129,7 +129,7 @@ void TPAR_mask::fill()
TString query;
const bool diagn = get_bool(F_DIAGN);
enable(DLG_OK, filter_selected.empty() || filter_selected == "E" || filter_selected == "X");
enable(DLG_OK, filter_selected.empty() || filter_selected == "E" || filter_selected == "X" || filter_selected == "D");
enable(DLG_PRINT, true);
enable(DLG_SAVEREC, (is_f8() && (filter_selected == "X") || filter_selected == "D"));
enable(DLG_FINDREC, filter_selected == "D");
@ -147,6 +147,7 @@ void TPAR_mask::fill()
//MY QUERY
//DA RIVEDERE QUESTA QUERY
query << "USE " << LF_MOV << " KEY 2\n";
if (dal.ok())
query << "FROM " << MOV_DATAREG << "=" << dal << "\n";
@ -562,7 +563,7 @@ bool TPAR_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
case DLG_SAVEREC:
{
if (e == fe_button)
set_err_paf();
delete_paf();
}
break;
case DLG_FINDREC:
@ -647,7 +648,7 @@ bool TPAR_mask::check_full_fields() const
return true;
}
void TPAR_mask::set_err_paf()
void TPAR_mask::delete_paf()
{
// Vado a riportare sui paf l'errore
TSheet_field& sfld = sfield(F_REGS);
@ -670,6 +671,34 @@ void TPAR_mask::set_err_paf()
if (chiave_paf_mov(mov, tipodocsdi, hfatt, bfatt) && paf0100f.search(nullptr, hfatt, bfatt))
{
TString query;
query <<
"DELETE FROM PAF0100F WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF0200F WHERE P2_KEYHEADERFATT = '" << hfatt << "' AND P2_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF0400F WHERE P4_KEYHEADERFATT = '" << hfatt << "' AND P4_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF0700F WHERE P7_KEYHEADERFATT = '" << hfatt << "' AND P7_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF0800F WHERE P8_KEYHEADERFATT = '" << hfatt << "' AND P8_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1000F WHERE P0_KEYHEADERFATT = '" << hfatt << "' AND P0_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1100F WHERE PA_KEYHEADERFATT = '" << hfatt << "' AND PA_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1200F WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1400F WHERE PD_KEYHEADERFATT = '" << hfatt << "' AND PD_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1600F WHERE PF_KEYHEADERFATT = '" << hfatt << "' AND PF_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1700F WHERE PG_KEYHEADERFATT = '" << hfatt << "' AND PG_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1800F WHERE PI_KEYHEADERFATT = '" << hfatt << "' AND PI_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF1900F WHERE PY_KEYHEADERFATT = '" << hfatt << "' AND PY_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2000F WHERE PJ_KEYHEADERFATT = '" << hfatt << "' AND PJ_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2100F WHERE PK_KEYHEADERFATT = '" << hfatt << "' AND PK_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2200F WHERE PL_KEYHEADERFATT = '" << hfatt << "' AND PL_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2400F WHERE PN_KEYHEADERFATT = '" << hfatt << "' AND PN_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2500F WHERE PO_KEYHEADERFATT = '" << hfatt << "' AND PO_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2600F WHERE PP_KEYHEADERFATT = '" << hfatt << "' AND PP_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF2700F WHERE PQ_KEYHEADERFATT = '" << hfatt << "' AND PQ_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF3000F WHERE PT_KEYHEADERFATT = '" << hfatt << "' AND PT_KEYBODYFATT = '" << bfatt << "';\n" <<
"DELETE FROM PAF3200F WHERE PU_KEYHEADERFATT = '" << hfatt << "' AND PU_KEYBODYFATT = '" << bfatt << "';\n" <<
// PAFW3 non ha il flag di gestione
"DELETE FROM PAFW300F WHERE PW_KEYHEADERFATT = '" << hfatt << "' AND PW_KEYBODYFATT = '" << bfatt << "';\n";
/*
query <<
"UPDATE PAF0100F SET P1_GESTIONE = 'E', P1_KEYPRGINVIO = 'DELETED' WHERE P1_KEYHEADERFATT = '" << hfatt << "' AND P1_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF0200F SET P2_GESTIONE = 'E', P2_KEYPRGINVIO = 'DELETED' WHERE P2_KEYHEADERFATT = '" << hfatt << "' AND P2_KEYBODYFATT = '" << bfatt << "';\n" <<
@ -679,7 +708,7 @@ void TPAR_mask::set_err_paf()
"UPDATE PAF1000F SET P0_GESTIONE = 'E', P0_KEYPRGINVIO = 'DELETED' WHERE P0_KEYHEADERFATT = '" << hfatt << "' AND P0_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1100F SET PA_GESTIONE = 'E', PA_KEYPRGINVIO = 'DELETED' WHERE PA_KEYHEADERFATT = '" << hfatt << "' AND PA_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1200F SET PB_GESTIONE = 'E', PB_KEYPRGINVIO = 'DELETED' WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1400F SET PB_GESTIONE = 'E', PB_KEYPRGINVIO = 'DELETED' WHERE PB_KEYHEADERFATT = '" << hfatt << "' AND PB_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1400F SET PD_GESTIONE = 'E', PD_KEYPRGINVIO = 'DELETED' WHERE PD_KEYHEADERFATT = '" << hfatt << "' AND PD_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1600F SET PF_GESTIONE = 'E', PF_KEYPRGINVIO = 'DELETED' WHERE PF_KEYHEADERFATT = '" << hfatt << "' AND PF_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1700F SET PG_GESTIONE = 'E', PG_KEYPRGINVIO = 'DELETED' WHERE PG_KEYHEADERFATT = '" << hfatt << "' AND PG_KEYBODYFATT = '" << bfatt << "';\n" <<
"UPDATE PAF1800F SET PI_GESTIONE = 'E', PI_KEYPRGINVIO = 'DELETED' WHERE PI_KEYHEADERFATT = '" << hfatt << "' AND PI_KEYBODYFATT = '" << bfatt << "';\n" <<
@ -695,6 +724,7 @@ void TPAR_mask::set_err_paf()
"UPDATE PAF3200F SET PU_GESTIONE = 'E', PU_KEYPRGINVIO = 'DELETED' WHERE PU_KEYHEADERFATT = '" << hfatt << "' AND PU_KEYBODYFATT = '" << bfatt << "';\n" <<
// PAFW3 non ha il flag di gestione
"UPDATE PAFW300F SET PW_KEYPRGINVIO = 'DELETED' WHERE PW_KEYHEADERFATT = '" << hfatt << "' AND PW_KEYBODYFATT = '" << bfatt << "';\n";
*/
if (!fp_db().sq_set_exec(query))
{
TString err = "Impossibile salvare la regolarizzazione "; err << nreg << "\nVerrà saltata.";

View File

@ -71,12 +71,12 @@ END
RADIOBUTTON F_REGSEL 7 80
BEGIN
PROMPT 1 3 "Registrazioni da visualizzare"
PROMPT 1 3 "@bIntegrazioni da visualizzare"
ITEM "|Da inviare"
ITEM "X|XML Generato"
ITEM "N|Notificato"
//ITEM "N|Notificato"
ITEM "D|Pre-Diagosticate"
ITEM "E|In errore"
ITEM "D|Diag."
ITEM "X|XML Generato"
FLAGS "Z"
END
@ -90,7 +90,7 @@ END
LIST F_TIPO_SDI 40
BEGIN
PROMPT 1 14 "Tipo documento SDI "
PROMPT 1 13 "@bDocumento SDI da generare"
ITEM "TD16|TD16 Integraz. fatt. rev.ch. interno"
ITEM "TD17|TD17 Integ./autof. acq. servizi estero"
ITEM "TD18|TD18 Integ. acq. beni intracomunitari"
@ -98,10 +98,16 @@ BEGIN
ITEM "TD20|TD20 Autofattura"
END
BOOLEAN F_DIAGN
BEGIN
PROMPT 1 15 "Esporta in stato diagnosticato"
END
GROUPBOX DLG_NULL 80 4
BEGIN
PROMPT 1 14 "@bConfigurazione"
GROUP 1
END
BOOLEAN F_DIAGN
BEGIN
PROMPT 2 15 "Esporta in stato diagnosticato"
END
STRING DLG_PROFILE 50
BEGIN

View File

@ -694,9 +694,9 @@ protected:
bool add_row_alleg(TFilename& file, long& nprogr, TPaf_record& paf);
void set_qta_prezzo(TPaf_record& paf1800f, const TMovimento_contabile& mov, int n_row) const;
void add_ritenuta(const TMovimento_contabile & mov, int n_row, TPaf_record& paf0700f) const;
bool add_riepilogo_iva(const TMovimento_contabile mov, int n_riga);
bool add_riepilogo_iva(const TMovimento_contabile & mov, int n_riga);
const char * stato_paf() const { return _definitivo && !get_no_export_pronto() ? "P" : "D"; }
const char * stato_paf() const { return _definitivo ? "P" : "D"; }
const TFirm& TReg_fp::get_firm(){return prefix().firm();}

View File

@ -3043,13 +3043,14 @@ bool TReg_fp::initialize(const TMovimento_contabile& mov)
_log.log(-1, _bfatt);
// Controllo se il documento almeno in stato di stampa
_is_pa = mov.clifo().get_int("ALLEG") == 7;
_pec = _ditta.pec();
if (_ditta.coddest().empty())
if (_ditta.coddest().empty() && _pec.empty())
_coddest = "0000000";
else
_coddest = _ditta.coddest();
_pec = _ditta.pec();
_enapec = _coddest == "0000000" && _pec.full();
_privato = _coddest.len() != 6;
// Azzero indici
@ -3148,7 +3149,7 @@ bool TReg_fp::add_row_alleg(TFilename& file, long& nprogr, TPaf_record& paf)
return ok;
}
bool TReg_fp::add_riepilogo_iva(const TMovimento_contabile mov, int n_riga)
bool TReg_fp::add_riepilogo_iva(const TMovimento_contabile & mov, int n_riga)
{
TPaf_record& paf2200f = _paf_container.get_paf("PAF2200F");
const TRectype& rec_iva = mov.iva()[n_riga];
@ -3190,6 +3191,9 @@ bool TReg_fp::export_paf0100f()
tel << get_firm().get(NDT_PTEL) << get_firm().get(NDT_TEL);
paf0100f.set("P1_TELEFONO", tel);
paf0100f.set("P1_MAIL", get_firm().get(NDT_MAIL));
const char* c = stato_paf();
paf0100f.set("P1_GESTIONE", stato_paf());
paf0100f.set("P1_ERRINT", "");
// </DatiTrassmissione>
@ -3220,7 +3224,7 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
// <CedentePrestatore>
TPaf_record& paf0200f = _paf_container.get_paf("PAF0200F");
const TAnagrafica & fornitore = mov.clifo().anagrafica();
const TAnagrafica& fornitore = mov.clifo().anagrafica();
if (!paf0200f.is_full())
{
@ -3378,7 +3382,7 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
if (nregcoll > 0L)
{
const TRectype & movcoll = cache().get(LF_MOV, nregcoll);
const TRectype& movcoll = cache().get(LF_MOV, nregcoll);
idsdi = movcoll.get(MOV_IDDOCSDI);
datasdi = movcoll.get_date(MOV_DATADOCSDI);
@ -3430,8 +3434,6 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
ok &= insert(paf1800f);
add_riepilogo_iva(mov, i);
reset(paf3000f);
paf3000f.set("PT_RIFNUMLINEA", (long)i);
paf3000f.set("PT_COMMENTO", "");//TODO COSA DOBBIAMO METTERE NELLA DESCRIZIONE IVA CHE NON C'è
@ -3440,7 +3442,7 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
if (ok) ok &= insert(paf3000f);
if (ok) ok &= insert(paf0700f);
}
// Tabella di non invio XML
TPaf_record& pafw300f = _paf_container.get_paf("PAFW300F");
pafw300f.set("PW_TIPODOC", ""); //TODO PASSARE IL TIPO DOCUMENTO DELLA MASK NEL COSTRUTTORE
@ -3465,8 +3467,6 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov)
pafw300f.set("PW_IMPO", mov.get_real(MOV_TOTDOC)); //TODO controllare ?????
ok &= insert(pafw300f);
return _to_commit = (ok && save_paf());
}
return ok;
}
bool TReg_fp::reg_to_paf(long n_mov)