From da743db4f5d33888212a9a477d39e09c1ce1ba99 Mon Sep 17 00:00:00 2001 From: smen Date: Fri, 17 Dec 2021 17:20:25 +0100 Subject: [PATCH] Patch level : nopatch Files correlati : Commento : --- src/cg/cglib.h | 4 ++-- src/cg/cglib07.cpp | 2 +- src/fp/fplib01.cpp | 47 +++++++++++++++++++++++++++++----------------- 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/src/cg/cglib.h b/src/cg/cglib.h index 7e3538b7a..7f36f2b28 100644 --- a/src/cg/cglib.h +++ b/src/cg/cglib.h @@ -1364,11 +1364,11 @@ class TAnagrafica : public TObject char _tipo; // F o G char _sociounico; TString4 _stato_paiv; - TString _cofi, _paiv, _cofiest; + TString _cofi, _paiv, _cofiest, _pec; TString80 _ragsoc; TString4 _com_nasc, _com_res; TString80 _loc_res, _ind_res, _via_res; - TString16 _civ_res, _cap_res, _cod_EORI, _pec, _coddest; + TString16 _civ_res, _cap_res, _cod_EORI, _coddest; TDate _data_nasc; int _allegato, _stato_estero, _stato_nasc; diff --git a/src/cg/cglib07.cpp b/src/cg/cglib07.cpp index 32759bd31..1fbeab9cb 100644 --- a/src/cg/cglib07.cpp +++ b/src/cg/cglib07.cpp @@ -527,7 +527,7 @@ bool TAnagrafica::init(const TRectype& rec) if (_tipo == 'G' || _ragsoc.len() <= 30) split_ragsoc(); _cod_EORI = rec.get(CLI_CODEORI); - _coddest = rec.get(CLI_PADESTIN); + _coddest = rec.get(CFV_PADESTIN); _pec = rec.get(CLI_PEC); break; case LF_MOV: diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 5dafc5c88..24024710b 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -2849,12 +2849,8 @@ bool TReg_fp::initialize(const TMovimento_contabile& mov) // Controllo se il documento almeno in stato di stampa _is_pa = mov.clifo().get_int("ALLEG") == 7; - // direi che la mia pec no si trova cosi'' - if (!get_coddest(mov.get_char(MOV_TIPO), mov.get_long(MOV_CODCF), _coddest, _pec)) - { - _log.log(1, "Impossibile trovare il codice destinatario per la fattura"); - return false; - } + _coddest = _ditta.coddest(); + _pec = _ditta.pec(); _enapec = _coddest == "0000000" && _pec.full(); _privato = _coddest.len() != 6; // Azzero indici @@ -3144,16 +3140,6 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov) paf0400f.set("P4_SEDECOMUNE", _ditta.comune_residenza()); paf0400f.set("P4_SEDEPROV", _ditta.provincia_residenza()); paf0400f.set("P4_SEDENAZ", _ditta.stato_residenza_ISO()); - - TString coddest = _ditta.coddest(); - - if (coddest.blank()) - { - if (_ditta.pec().full()) - coddest = _ditta.pec(); - else - coddest = "0000000"; - } // Titolo onorifico! const TString& titolo = (mov.clifo().vendite().get(CFV_TITOLO)); @@ -3209,6 +3195,12 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov) datasdi = movcoll.get_date(MOV_DATADOCSDI); } } + if (idsdi.blank()) + { + idsdi = mov.get(MOV_NUMDOC); + datasdi = mov.get_date(MOV_DATADOC); + } + paf1400f.set("PD_IDDOC", idsdi); paf1400f.set("PD_DATADOC", datasdi); ok &= insert(paf1400f); @@ -3225,10 +3217,31 @@ bool TReg_fp::reg_to_paf(const TMovimento_contabile& mov) for (int i = 1; i <= n_righe_iva; i++) { + const TRectype& rec_iva = mov.iva()[i]; + const TString16 cod_aliquota = rec_iva.get(RMI_CODIVA); + const TCodiceIVA& cod_iva = cached_codIVA(cod_aliquota); + const real aliquota = cod_iva.percentuale(); + reset(paf1800f); paf1800f.set("PI_NUMEROLINEA", (long)i); - add_riepilogo_iva(mov, i); + + //PI_TIPOCESSPREST CHAR(2) NOT NULL DEFAULT '', ci va? + //PI_DESCRIZIONE CHAR(100) NOT NULL DEFAULT '', + //PI_RIFAMMINISTR CHAR(20) NOT NULL DEFAULT '', + + paf1800f.set("PI_QUANTITA", 1l); + paf1800f.set("PI_PREZZOUNIT", rec_iva.get(RMI_IMPONIBILE)); + paf1800f.set("PI_PRZTOTALE", rec_iva.get(RMI_IMPONIBILE)); + paf1800f.set("PI_ALIQUOTA", aliquota); + if (aliquota.is_zero()) + paf1800f.set("PI_NATURA", natura(cod_aliquota)); + paf1800f.set("PI_GESTIONE", stato_paf()); + paf1800f.set("PI_ERRINT", ""); + paf1800f.set("PI_ERREST", ""); + ok &= insert(paf1800f); + add_riepilogo_iva(mov, i); + reset(paf3000f); paf3000f.set("PT_RIFNUMLINEA", (long)i);