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); } } }