diff --git a/src/cg/cg2100.cpp b/src/cg/cg2100.cpp index f5b822896..70c340ad1 100755 --- a/src/cg/cg2100.cpp +++ b/src/cg/cg2100.cpp @@ -60,7 +60,7 @@ public: TPrimanota_application::TPrimanota_application() : _rel(nullptr), _mode(0), _iva(nessuna_iva), _causale(nullptr), _giornale(nullptr), - _lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _automatico(nullptr), _swap_mask(false), _is_set_fpcheck(false), _f1_ini(false), _f1_liq(false), + _lastreg(0), _last_dreg(TODAY), _last_dcom(TODAY), _automatico(nullptr), _swap_mask(false), _is_set_fpcheck(false), _f1_liq(false), // _f1_ini(false), _skip_giornale_check(false), _skip_bollato_check(false), _pro_mask(nullptr) { memset(_msk, 0, sizeof(_msk)); @@ -250,10 +250,12 @@ void TPrimanota_application::check_f1_ini() for (int i = 0; i < argc(); i++) { TString arg(argv(i)); - if (arg.find("-f1") != -1) + +/* if (arg.find("-f1") != -1) { _f1_ini = true; } +*/ if (arg.find("-liq") != -1) { _f1_liq = true; @@ -287,7 +289,7 @@ bool TPrimanota_application::user_create() load_mask(0); load_colors(); - check_f1_ini(); + check_f1_ini(); return true; } @@ -1263,7 +1265,10 @@ int TPrimanota_application::read(TMask& m) real imponibile(r.get(RMI_IMPONIBILE)); if (to_swap) imponibile = -imponibile; riga.add(imponibile.string()); // Imponibile 101 - riga.add(r.get(RMI_CODIVA)); // IVA 102 + + const TString8 codiva = r.get(RMI_CODIVA); + + riga.add(codiva); // IVA 102 riga.add(r.get(RMI_TIPODET)); // Detrazione 103 real imposta(r.get(RMI_IMPOSTA)); @@ -1278,8 +1283,13 @@ int TPrimanota_application::read(TMask& m) TBill c; c.get(r); c.add_to(riga, 4, 0x7); // Conto 105-110 + + const TCodiceIVA & iva = cached_codIVA(codiva); + + riga.add(iva.percentuale(), cid2index(IVA_PERCIVA)); + riga.add(iva.natura(), cid2index(IVA_NATURIVA)); riga.add(r.get(RMI_NAVP), cid2index(IVA_NOTAVARECF)); - riga.add(r.get(RMI_REVCHARGE), cid2index(IVA_REVCHARGE)); + riga.add(r.get(RMI_REVCHARGE), cid2index(IVA_REVCHARGE)); } calcola_imp(); // Calcola totale imponibile ed imposte ivas().update_original_rows(); @@ -2348,11 +2358,10 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) TBill c; ini2bill(ini, c, false); if (c.gruppo() > 0) c.add_to(riga, 4, 0x7); // Conto 105-110 - if (_f1_ini) - { + if (ini.exist("PERCIVA")) add_not_empty(riga, 10, ini, "PERCIVA"); // Perc. IVA 111 + if (ini.exist("NATURA")) add_not_empty(riga, 11, ini, "NATURA"); // Natura IVA 112 - } iva_notify(is, i, K_ENTER); } @@ -2496,23 +2505,20 @@ void TPrimanota_application::ini2mask(TConfig& ini, TMask& msk, bool query) pagamento().set_sheet(pag); } } - if (_f1_ini && msk.find_by_id(FS_RECALC) != nullptr) - { + if (msk.find_by_id(F_COLFPPRO) != nullptr) msk.set(F_COLFPPRO, "X", 0x3); - if (scad_from_ini) - { - msk.set(FS_RECALC, ""); - set_scad_f1(msk); - } + if (msk.find_by_id(FS_RECALC) != nullptr && scad_from_ini) + { + msk.set(FS_RECALC, ""); + set_scad_f1(msk); insert_part_scad(ini); } - if (_f1_liq && msk.find_by_id(F_DIFFERITA) != nullptr) + if (_f1_liq && msk.find_by_id(F_DIFFERITA) != nullptr) { TDate datadoc(msk.get(F_DATADOC)); datadoc.set_day(1); TDate datareg(msk.get(F_DATAREG)); datareg.set_day(1); - if(datadoc < datareg && (double)datadoc.year() == real(msk.get(F_ANNOIVA))) - msk.set(F_DIFFERITA, "X"); + msk.set(F_DIFFERITA, datadoc < datareg && (double)datadoc.year() == real(msk.get(F_ANNOIVA))); } } diff --git a/src/cg/cg2102.cpp b/src/cg/cg2102.cpp index c35f6eb8f..c110d0c1d 100755 --- a/src/cg/cg2102.cpp +++ b/src/cg/cg2102.cpp @@ -1368,6 +1368,8 @@ bool TPrimanota_application::codiva_handler(TMask_field& f, KEY key) im.set_dirty(); im.on_hit(); + m.set(IVA_PERCIVA, iva.percentuale()); + m.set(IVA_NATURIVA, iva.natura()); } else { @@ -1765,7 +1767,7 @@ bool TPrimanota_application::iva_notify(TSheet_field& s, int r, KEY k) real pimponibile(pag.imponibile(inv)); pimponibile.round(pag.round(inv)); - if ((pimposta != imposta || pimponibile != imponibile) && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) + if ((pimposta != imposta || pimponibile != imponibile) && (/*!a._f1_ini && */ (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) a.set_scadenze(m); // Ricalcola rate } } @@ -3151,6 +3153,8 @@ bool TPrimanota_application::main_codiva_handler(TMask_field& f, KEY key) row.add(codiva.indetraibilita(), cid2index(IVA_INDETRAIBILE)); row.add(a.causale().iva() == iva_acquisti && a.causale().reverse_charge_pubb() && reverse_charge_attivo ? "X" : "", cid2index(IVA_REVCHARGE)); } + row.add(codiva.percentuale(), cid2index(IVA_PERCIVA)); + row.add(codiva.natura(), cid2index(IVA_NATURIVA)); TBill bill(row, cid2index(IVA_TIPO), 0x1); diff --git a/src/cg/cg2102.h b/src/cg/cg2102.h index 7e61702c5..09df840b8 100755 --- a/src/cg/cg2102.h +++ b/src/cg/cg2102.h @@ -161,7 +161,7 @@ class TPrimanota_application : public TRelation_application TPro_msk * _pro_mask; bool _is_set_fpcheck; int _last_date; - bool _f1_ini; +// bool _f1_ini; bool _f1_liq; TString _num_doc_rif_partite; friend class TPro_msk; diff --git a/src/cg/cg2104.cpp b/src/cg/cg2104.cpp index e2b265ea0..da81df5cd 100755 --- a/src/cg/cg2104.cpp +++ b/src/cg/cg2104.cpp @@ -329,7 +329,7 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key) TMask& m = f.mask(); TPrimanota_application& a = app(); const bool set_scad = a.is_fattura() && m.page_enabled(2); // E' attiva pagina 3 - if (key == K_ENTER && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) + if (key == K_ENTER && (/*!a._f1_ini && */ (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) { if (set_scad && f.empty()) { @@ -356,7 +356,7 @@ bool TPrimanota_application::codpag_handler(TMask_field& f, KEY key) } } - if (key == K_TAB && f.focusdirty() && m.insert_mode() && set_scad && (!a._f1_ini && (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) + if (key == K_TAB && f.focusdirty() && m.insert_mode() && set_scad && (/*!a._f1_ini && */ (a._pro_mask == nullptr || !a._pro_mask->da_riportare()))) a.set_scadenze(m); return ok; diff --git a/src/cg/cg21iva.uml b/src/cg/cg21iva.uml index f58094277..5cd9db8ca 100755 --- a/src/cg/cg21iva.uml +++ b/src/cg/cg21iva.uml @@ -57,7 +57,7 @@ END STRING IVA_PERCIVA 3 BEGIN - PROMPT 20 4 "Perc." + PROMPT 36 4 "Perc." FLAGS "D" END