diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 4a6379428..1af414dbf 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -2198,9 +2198,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc) paf3000f.set("PT_COMMENTO", descrizione_riga); // if (rdoc->is_articolo()) - { ok &= export_info_articolo(rdoc, paf1900f, paf2100f, riga, r); - } // if (rdoc->is_descrizione()) { @@ -2368,17 +2366,34 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc) TRiepilogo_agg& riepilogo_agg = _riepilogo_agg[rdoc->iva().codice()]; riepilogo_agg.imponibile += rdoc->imponibile_omaggio(2); paf1800f.set("PI_GESTIONE", stato_paf()); - ok &= insert(paf1800f); + ok &= insert(paf1800f) && insert(paf3000f); reset(paf1800f); paf1800f.set("PI_NUMEROLINEA", ++riga); + reset(paf3000f); + paf3000f.set("PT_RIFNUMLINEA", riga); + paf3000f.set("PT_COMMENTO", descrizione_riga); set_qta_prezzo(paf1800f, rdoc); paf1800f.set("PI_UNITAMISURA", rdoc->get(RDOC_UMQTA)); paf1800f.set("PI_QUANTITA", rdoc->get_real(RDOC_QTA).string(0)); paf1800f.set("PI_PREZZOUNIT", converti_prezzo(-rdoc->prezzo(false, false))); - paf1800f.set("PI_PRZTOTALE", converti_prezzo(-rdoc->prezzo(false, false) * rdoc->get_real(RDOC_QTA))); + + const real imponibile = converti_prezzo(-rdoc->prezzo(false, false) * rdoc->get_real(RDOC_QTA)); + + paf1800f.set("PI_PRZTOTALE", imponibile); paf1800f.set("PI_ALIQUOTAIVA", "0.00"); paf1800f.set("PI_NATURA", "N2.2"); ok &= insert(paf2100f); + if (rdoc->is_articolo()) + { + ok &= insert(paf1900f); + ok &= insert(paf2100f); + reset(paf1900f); + ok &= export_info_articolo(rdoc, paf1900f, paf2100f, riga, r); + } + const TString & iva_storno = ini_get_string(CONFIG_DITTA, "VE", "IVASTO"); + TPaf_record& paf2200f = _paf_container.get_paf("PAF2200F"); + + add_riepilogo_iva(paf2200f, cached_codIVA(iva_storno), get_esigibilita_iva(doc), imponibile, ZERO); reset(paf2100f); paf2100f.set("PK_KEYNLINEA", riga); paf2100f.set("PK_KEYNLINAR", _idx_adg_doc_row++);