From 4560e43bd6bcdf717db0f9cc1d51f4f6de4e2364 Mon Sep 17 00:00:00 2001 From: francescofucarino Date: Tue, 17 Nov 2020 18:03:40 +0100 Subject: [PATCH] Patch level : 12.0 1010 Files correlati : fp0.exe Commento : MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Troncati a due(2 char) i codici natura IVA nell'invio Fatture Modifiche all'invio dei tipi di documento SDI per gestire i nuovi tracciati SDI (TD24,TD25,TD27 -->TD01; se la data di invio รจ antecedente alla data di inizio nuovo tracciato fatturazione elettronica) Interno : --- src/fp/fp0300.cpp | 35 ++++++++++++++++++++++++----------- src/fp/fplib.h | 4 ++-- src/fp/fplib01.cpp | 26 +++++++++++++++++--------- 3 files changed, 43 insertions(+), 22 deletions(-) diff --git a/src/fp/fp0300.cpp b/src/fp/fp0300.cpp index 86a28d444..c4e3a5e33 100644 --- a/src/fp/fp0300.cpp +++ b/src/fp/fp0300.cpp @@ -52,10 +52,22 @@ protected: public: TPA_mask() : TAutomask("fp0300a"), _filter_changed(true), _enable_chiave_fixer(false) { - disable(DLG_OK); - disable(DLG_SAVEREC); - disable(DLG_FINDREC); - load_all_fields(); + disable(DLG_OK); + disable(DLG_SAVEREC); + disable(DLG_FINDREC); + load_all_fields(); + const TDate data_inizio = fp_settings().get_date_start_new_fatt(); + + if (today < data_inizio) + { + const TSheet_field & sheet = sfield(F_DOCS); + const TMask & rowmask = sheet.sheet_mask(); + TList_field & tdsdi = rowmask.lfield(S_CODSDI); + + tdsdi.delete_item("TD24"); + tdsdi.delete_item("TD25"); + tdsdi.delete_item("TD27"); + } } void save_all_fields() const; }; @@ -182,6 +194,7 @@ void TPA_mask::fill() // Disabilito la colonna del codice ufficio docs.enable_column(docs.cid2index(S_UFFICIO), false); + const TDate data_inizio = fp_settings().get_date_start_new_fatt(); for (bool okc = rec.move_first(); okc; okc = rec.move_next()) { @@ -215,13 +228,13 @@ void TPA_mask::fill() row.add(rec.get(DOC_CODNUM).as_string()); row.add(rec.get(DOC_TIPODOC).as_string()); - const TString & tipodoc = rec.get(DOC_TIPODOCSDI).as_string(); - - if (tipodoc.full()) - row.add(tipodoc); - else - row.add(td.tipo_doc_sdi()); - + TString tipodoc = rec.get(DOC_TIPODOCSDI).as_string(); + + if (tipodoc.blank()) + tipodoc = td.tipo_doc_sdi(); + if (today 2) + natura = natura.sleft(2); + return natura; } const char* TDoc_fp::get_esigibilita_iva(const TDocumentoEsteso& doc) { @@ -1291,16 +1297,18 @@ const real calc_ritenuta(const TDocumento& doc) } return imponibile; } -void TDoc_fp::add_ritenuta(const TDocumentoEsteso& doc, const TSpesa_prest& sp, TPaf_record& paf0700f) const +void TDoc_fp::add_ritenuta(const TRiga_documento & rdoc, TPaf_record& paf0700f) const { // - const real importo_ritenute = doc.ritenute(); + const TSpesa_prest & sp = rdoc.spesa(); + const real importo_ritenuta = rdoc.ritenuta(); TString tipo_rit = sp.codice_tipo_ritenuta_fp(); + if (tipo_rit.empty()) tipo_rit = _rec_clifo.get_char(CLI_TIPOPERS) == 'F' ? "RT01" : "RT02"; paf0700f.set("P7_TIPORITENUTA", tipo_rit); - paf0700f.set("P7_IMPORTORIT", converti_prezzo(importo_ritenute)); + paf0700f.set("P7_IMPORTORIT", converti_prezzo(importo_ritenuta)); paf0700f.set("P7_ALIQUOTARIT", sp.perc()); static TString caus_la; caus_la.cut(0); caus_la << sp.get("S14")[0]; @@ -1361,7 +1369,7 @@ bool TDoc_fp::add_cassa_previdenziale(TRiga_documento& rdoc) paf0800f.set("P8_ALIQIVA", rdoc.iva().percentuale()); if(sp.sogg_a_rit()) paf0800f.set("P8_RITENUTA", "SI"); - paf0800f.set("P8_NATURA", rdoc.iva().natura()); + paf0800f.set("P8_NATURA", natura(rdoc.iva().codice())); // Inserisco il tutto nei dati riepilogo /*TRiepilogo_agg& pop = _riepilogo_agg[rdoc.iva().codice()]; pop.imponibile += importo_cassa; @@ -1981,7 +1989,7 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc) { paf1800f.set("PI_RITENUTA", "SI"); // Todo: modifica nuovo tracciato xml: si possono aggiungere piu' casse prev. la prima sempre sul paf07, le altre sulla nuova tab paf35. - add_ritenuta(doc, rdoc->spesa(), paf0700f); + add_ritenuta(*rdoc, paf0700f); } } }