Patch level : 12.00 1278

Files correlati     : ca3.exe ca3*.msk
Commento            :

La stampa del bilancio di commessa non considerava bene le fatturre da ricevere evase.
This commit is contained in:
Alessandro Bonazzi 2023-08-24 01:05:09 +02:00
parent 5c0af15c44
commit c76d0ba018

View File

@ -1165,7 +1165,8 @@ void TPrint_saldana_recordset::parse_rdoc_ordini(TAssoc_array* cms, const TDate&
//crea il documento virtuale in memoria; se non è ordine oppure lo è ma è già evaso, lo saltiamo!!! ole'! //crea il documento virtuale in memoria; se non è ordine oppure lo è ma è già evaso, lo saltiamo!!! ole'!
TDocumento doc(curr_doc); TDocumento doc(curr_doc);
if (!doc.is_ordine() || doc.is_evaso())
if (!doc.is_ordine() || doc.is_evaso())
continue; continue;
//il documento virtuale è adesso un ordine non evaso //il documento virtuale è adesso un ordine non evaso
@ -1324,17 +1325,31 @@ void TPrint_saldana_recordset::parse_rdoc_fatture(TAssoc_array* cms, const TDate
//..e quindi non devono essere ricontabilizzate come fatture vere e proprie (es. FAQ) //..e quindi non devono essere ricontabilizzate come fatture vere e proprie (es. FAQ)
const int num_rows = doc.physical_rows(); const int num_rows = doc.physical_rows();
bool is_fdr = false; bool is_fdr = false;
for (int k = 1; k <= num_rows && !is_fdr; k++) for (int k = 1; k <= num_rows && !is_fdr; k++)
{ {
const TRiga_documento& riga = doc[k]; const TRiga_documento& riga = doc[k];
const TRectype* riga_babbo = riga.find_original_rdoc(); const TRectype* riga_babbo = riga.find_original_rdoc();
if (riga_babbo != NULL && riga_babbo->get(RDOC_PROVV).not_empty()) if (riga_babbo != nullptr && riga_babbo->get(RDOC_PROVV).not_empty())
{ {
const TString& key(riga_babbo->get(RDOC_CODNUM)); const TString& codnum(riga_babbo->get(RDOC_CODNUM));
const TCodice_numerazione& num = TDocumento::codice_numerazione(key); const TCodice_numerazione& num = TDocumento::codice_numerazione(codnum);
if (num.fattura_emettere_ricevere()) if (num.fattura_emettere_ricevere())
is_fdr = true; is_fdr = true;
} }
const TRectype * riga_figlia = riga.find_son_rdoc();
if (riga_figlia != nullptr)
{
const TString& codnum(riga.get(RDOC_CODNUM));
const TCodice_numerazione& num = TDocumento::codice_numerazione(codnum);
int anno = riga.get_int(RDOC_ANNO);
if (num.fattura_emettere_ricevere() && anno == riga_figlia->get_int(RDOC_ANNO))
is_fdr = true;
}
} }
if (is_fdr) if (is_fdr)
continue; continue;