From 7e254c164f0dbf4a49c3920e4768362495c8605d Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Wed, 12 Feb 2020 16:57:45 +0100 Subject: [PATCH] Patch level : 12.0 940 Files correlati : fp0.exe Commento : Corretta esportazione partite iva e codici fiscali in fattura elettronica. Problema uscito per i clienti gruppi iva. --- src/fp/fplib01.cpp | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 3f3a9e4af..8cb1b3778 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -1542,21 +1542,28 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc) // TPaf_record& paf0400f = _paf_container.get_paf("PAF0400F"); #ifndef DBG - // Per soggetti non italiani con solo codice fiscale va messo lo stato e il codice fiscale - if (cliente.partita_IVA().full()) - { - paf0400f.set("P4_FISCIVAPAESE", cliente.stato_partita_IVA()); - paf0400f.set("P4_FISCIVACOD", cliente.partita_IVA()); - } - else if(cliente.stato_partita_IVA() != "IT") - { - const TString& stato_paiv = cliente.stato_partita_IVA(); - paf0400f.set("P4_FISCIVAPAESE", stato_paiv.full() ? stato_paiv : cliente.stato_residenza_ISO()); - paf0400f.set("P4_FISCIVACOD", cliente.codice_fiscale()); - } - else + TString stato = cliente.stato_partita_IVA(); + TTable tab_codiso("%SCE"); + tab_codiso.tab(); + tab_codiso.put("CODTAB", stato); tab_codiso.read(); + const TString &piva = cliente.partita_IVA(), + &fisc = cliente.codice_fiscale(); + if (!stato.full()) + stato = "IT"; + paf0400f.set("P4_FISCIVAPAESE", stato); // Per tutti + if(tab_codiso.get_bool("B0")) // Cliente EU { - paf0400f.set("P4_CODFISC", cliente.codice_fiscale()); + if(piva.full()) + paf0400f.set("P4_FISCIVACOD", piva); + if(fisc.full()) + paf0400f.set("P4_CODFISC", fisc); + } + else // Cliente EXTRA-EU sempre nel campo della partita iva sui paf + { + if (fisc.full()) // Guardo prima l'id fiscale, perche' e' qui che dovrebbero stare in Campo + paf0400f.set("P4_FISCIVACOD", fisc); + else if (piva.full()) // Altrimenti dovrebbe essere nella partita iva + paf0400f.set("P4_FISCIVACOD", piva); } #else paf0400f.set("P4_FISCIVAPAESE", "IT");