Patch level : 12.0 934
Files correlati : tp0.exe Commento : - La segnalazione di sottocategoria assente non è più bloccante
This commit is contained in:
parent
19fd6a30f4
commit
8744bb7b7d
@ -65,6 +65,8 @@ public:
|
||||
|
||||
void log(const char* msg, int sev = 0) const;
|
||||
bool log_error(const char* msg);
|
||||
void log_message(const char* msg) { log(msg, 0); }
|
||||
|
||||
bool log_cancelled();
|
||||
const TRecordset& recordset() const;
|
||||
TRecordset& recordset();
|
||||
|
@ -830,7 +830,7 @@ bool TPack_ddt::trasferisci()
|
||||
const TCONAI_class ct = conai_str2class(conai_subclass);
|
||||
|
||||
if (cache().get("&VECSS", conai_subclass).empty())
|
||||
log_error(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
log_message(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
ndoc, (const char *) (rowtype == "01" ? codart : custcode),
|
||||
(const char *) conai_subclass));
|
||||
if (conai_scheme == 1)
|
||||
@ -851,7 +851,7 @@ bool TPack_ddt::trasferisci()
|
||||
const TString& cs = art.conai_subclass(i - 1); // Codice sottocategoria su ANAMAG
|
||||
|
||||
if (cache().get("&VECSS", cs).empty())
|
||||
log_error(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
log_message(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
ndoc, (const char *)(rowtype == "01" ? codart : custcode),
|
||||
(const char *)cs));
|
||||
|
||||
@ -880,7 +880,7 @@ bool TPack_ddt::trasferisci()
|
||||
const real& weight = art.conai_weight(i - 1); // Peso imballo su ANAMAG
|
||||
|
||||
if (cache().get("&VECSS", cs).empty())
|
||||
log_error(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
log_message(format(TR("Bolla %ld - Articolo %s - Sottocategoria %s assente"),
|
||||
ndoc, (const char *)(rowtype == "01" ? codart : custcode),
|
||||
(const char *)cs));
|
||||
|
||||
|
@ -177,8 +177,6 @@ void TDichiarazione_CONAI::scrivi_csv_doc_con_riga_generata(const TDocumento& do
|
||||
|
||||
TGeneric_distrib agip(totale_qta_assogg, 5); //distrib per ridistribuire le % dei quantitativi assoggetati
|
||||
|
||||
if (doc.get_long(DOC_NDOC) == 28L)
|
||||
int i = 1;
|
||||
//ciclo di creazione del distrib con le quote conai
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, j, rdoc)
|
||||
{
|
||||
@ -329,13 +327,11 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
|
||||
const int nrighe = doc.rows();
|
||||
|
||||
//ciclo di riempimento delle righe csv;scandisce solo l'array con i valori compilati
|
||||
for (int i = 1; i <= nrighe; i++)
|
||||
{
|
||||
const TRiga_documento& rdoc = doc[i];
|
||||
|
||||
FOR_EACH_PHYSICAL_RDOC(doc, i, rdoc)
|
||||
{
|
||||
for (int j = 1; j <= FR_CMAX; j++)
|
||||
{
|
||||
TString4 sottocat = rdoc.get(conai_sottocat_name(j));
|
||||
TString4 sottocat = rdoc->get(conai_sottocat_name(j));
|
||||
|
||||
if (sottocat == sottoclass)
|
||||
{
|
||||
@ -349,14 +345,14 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
|
||||
//riempie i campi del record del csv
|
||||
//codnum-anno-ndoc-datadoc-codcli-cofi-nriga-codagg1-sottocat-prezzo-um-conai(AB)-conai(B)-conai(A)
|
||||
//parte chiave della riga
|
||||
csv.set(0, rdoc.get(RDOC_CODNUM));
|
||||
csv.set(1, TVariant(rdoc.get(RDOC_ANNO)));
|
||||
csv.set(2, TVariant(rdoc.get(RDOC_NDOC)));
|
||||
csv.set(0, rdoc->get(RDOC_CODNUM));
|
||||
csv.set(1, TVariant(rdoc->get(RDOC_ANNO)));
|
||||
csv.set(2, TVariant(rdoc->get(RDOC_NDOC)));
|
||||
csv.set(3, TVariant(datadoc));
|
||||
csv.set(4, TVariant(clifo.codice()));
|
||||
csv.set(5, TVariant(clifo_paiv));
|
||||
csv.set(6, TVariant(rdoc.get(RDOC_CODART)));
|
||||
csv.set(7, TVariant(rdoc.get(RDOC_NRIGA)));
|
||||
csv.set(6, TVariant(rdoc->get(RDOC_CODART)));
|
||||
csv.set(7, TVariant(rdoc->get(RDOC_NRIGA)));
|
||||
|
||||
//codici conai
|
||||
csv.set(8, TVariant(sottocat.left(2))); //codice materiale conai (es. carta, legno...)
|
||||
@ -372,13 +368,15 @@ void TDichiarazione_CONAI::scrivi_csv_doc_speciale(const TDocumento& doc, TDichi
|
||||
csv.set(11, TVariant(umqta));
|
||||
|
||||
//quantita' totale conai (A + B) sul report (le NAC hanno segno rovesciato)
|
||||
real qta_tot_conai = rdoc.get_real(RDOC_QTA);
|
||||
real qta_tot_conai = rdoc->get_real(RDOC_QTA);
|
||||
|
||||
qta_tot_conai *= rdoc->get_real(conai_peso_name(j));
|
||||
if (is_nac)
|
||||
qta_tot_conai = -qta_tot_conai;
|
||||
csv.set(15, TVariant(qta_tot_conai));
|
||||
|
||||
//percentuale di esenzione conai al 100%?
|
||||
const real rdoc_perc_conai = rdoc.get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
|
||||
const real rdoc_perc_conai = rdoc->get_real(conai_esenzione_name(conai_specie, LF_RIGHEDOC)); // ex QTAGG2
|
||||
|
||||
//quantita' assoggettata (B) sul report (le NAC hanno segno rovesciato, ma avendolo gia' gia' rovesciato..
|
||||
//..in precedenza non deve fare nulla!)
|
||||
@ -448,17 +446,48 @@ bool TDichiarazione_CONAI::scrivi_csv(const TRectype& prima_riga, TDichiarazione
|
||||
const int nrighe = doc.rows();
|
||||
|
||||
int n_riga_generata = 0;
|
||||
for (int j = 1; j <= nrighe; j++)
|
||||
{
|
||||
const TRiga_documento& rdoc = doc[j];
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc.get(RDOC_CODART) == conai_codart && (rdoc.is_spese() || rdoc.is_generata()))
|
||||
bool has_conai_row = false;
|
||||
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(doc, j, rdoc)
|
||||
{
|
||||
if (rdoc->is_generata() && rdoc->get(RDOC_GENTIPO) == "C")
|
||||
has_conai_row = true;
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc->get(RDOC_CODART) == conai_codart && (rdoc->is_spese() || rdoc->is_generata()))
|
||||
{
|
||||
n_riga_generata = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (has_conai_row && n_riga_generata == 0)
|
||||
{
|
||||
char stato = doc.tipo().stati_iniziali_modifica()[0];
|
||||
|
||||
if (!isdigit(stato))
|
||||
stato = '1';
|
||||
doc.stato(stato);
|
||||
{
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(doc, j, rdoc)
|
||||
{
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc->is_generata() && rdoc->get(RDOC_GENTIPO) == "C")
|
||||
doc.destroy_row(j, true);
|
||||
}
|
||||
}
|
||||
doc.update_conai();
|
||||
{
|
||||
FOR_EACH_PHYSICAL_RDOC_BACK(doc, j, rdoc)
|
||||
{
|
||||
//c'è la riga generata con codart di tipo conai (sia automatica che manuale)?
|
||||
if (rdoc->get(RDOC_CODART) == conai_codart && (rdoc->is_spese() || rdoc->is_generata()))
|
||||
{
|
||||
n_riga_generata = j;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (n_riga_generata > 0)
|
||||
scrivi_csv_doc_con_riga_generata(doc, n_riga_generata, csv, conai_specie, sottoclass, log);
|
||||
else
|
||||
|
Loading…
x
Reference in New Issue
Block a user