Patch level : 12.0 976

Files correlati     : tp0.exe
Commento            :

- Sistemata la gestione delle rettifiche CONAI
This commit is contained in:
Alessandro Bonazzi 2020-07-10 11:32:41 +02:00
parent 710ebf2f0d
commit 76dfb8b482

View File

@ -99,10 +99,10 @@ protected:
bool scrivi_csv(const TRectype& prima_riga, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp, TLog_report &log) const;
void scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
void scrivi_csv_doc_generata(const TDocumento& doc, const int n_riga_generata,
TDichiarazione_CONAI_csv_recordset& csv, const TCONAI_class conai_specie,
const TString & sottoclass, const TString& conai_codsp, TLog_report &log) const;
void scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
void scrivi_csv_doc_not_generata(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp) const;
@ -147,7 +147,7 @@ real TDichiarazione_CONAI::clifo_conai(const TCli_for& clifo, const TCONAI_class
}
//riempie recordset con le righe CONAI del documento che contiene una riga generata CONAI
void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& doc, const int n_riga_generata,
void TDichiarazione_CONAI::scrivi_csv_doc_generata(const TDocumento& doc, const int n_riga_generata,
TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp, TLog_report &log) const
@ -316,7 +316,7 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
//riempie recordset con le righe CONAI del documento che NON ha una riga generata CONAI; trattasi di documenti..
//..farlocchi costruiti ad arte per correggere le vaccate dei rompiscatolifici
void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
void TDichiarazione_CONAI::scrivi_csv_doc_not_generata(const TDocumento& doc, TDichiarazione_CONAI_csv_recordset& csv,
const TCONAI_class conai_specie, const TString & sottoclass,
const TString& conai_codsp) const
{
@ -331,7 +331,26 @@ void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDic
TString80 clifo_paiv;
//cerca la percentuale di esenzione conai sul cliente (controllo
const real cfven_perc_conai = clifo_conai(clifo, conai_specie, clifo_paiv, doc);
bool ok = cfven_perc_conai >= CENTO;
if (!ok)
{
bool has_rettifica = false;
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
{
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codsp && !rdoc->is_generata())
{
has_rettifica = true;
break;
}
}
ok |= has_rettifica;
}
if (ok)
{
const int nrighe = doc.rows();
//ciclo di riempimento delle righe csv;scandisce solo l'array con i valori compilati
@ -438,6 +457,7 @@ void TDichiarazione_CONAI::scrivi_csv_doc_rettifiche(const TDocumento& doc, TDic
}
}
}
}
}
@ -454,9 +474,9 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
#ifdef DBG
//check di debug
if (numdoc == 1451)
if (numdoc == 935L)
const int cazzone = 1;
if (numdoc == 5L)
if ((numdoc == 308L) || (numdoc == 343L))
int i = 1;
#endif
//documento della prima riga e quindi anche di tutte le altre righe conai
@ -517,23 +537,9 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
}
}
if (n_riga_generata > 0)
scrivi_csv_doc_con_riga_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, conai_codsp, log);
scrivi_csv_doc_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, conai_codsp, log);
else
{
bool has_rettifica = false;
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
{
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
if (rdoc->get(RDOC_CODART) == conai_codsp && !rdoc->is_generata())
{
has_rettifica = true;
break;
}
}
if (has_rettifica)
scrivi_csv_doc_rettifiche(doc, csv, conai_specie, sottoclass, conai_codsp);
}
scrivi_csv_doc_not_generata(doc, csv, conai_specie, sottoclass, conai_codsp);
return true;
}