diff --git a/src/ve/ve1800.cpp b/src/ve/ve1800.cpp index bbea634f6..179b9cc7c 100644 --- a/src/ve/ve1800.cpp +++ b/src/ve/ve1800.cpp @@ -61,7 +61,7 @@ void TListaFido_app::main_loop() recset->set_var("#CODTO", cod_to); TDate al = m.get_date(F_ADATA); - + if (al.ok()) report.set_datafido(al); diff --git a/src/ve/ve18001.rep b/src/ve/ve18001.rep index c7700267b..f21d4e642 100644 --- a/src/ve/ve18001.rep +++ b/src/ve/ve18001.rep @@ -36,7 +36,7 @@ MESSAGE RESET,F1 diff --git a/src/ve/velib04b.cpp b/src/ve/velib04b.cpp index 4c3a87fd2..b921b1bf7 100755 --- a/src/ve/velib04b.cpp +++ b/src/ve/velib04b.cpp @@ -447,16 +447,36 @@ int TMovimentoPN_VE::recalc_cg_rows(const TString& descr_cr, TCausale& caus) bool ok = true; if (_caus->intra() && _caus->iva() == iva_acquisti) { - TBill c; _caus->bill(RIGA_RITENUTE_FISCALI, c); - ok = c.ok(); - if (ok) - { - const TString80 d = _caus->desc_agg(RIGA_RITENUTE_FISCALI); - const char rowtype = 'F'; - set_cg_rec(-1, real2imp(head.get_real(MOV_RITFIS), rowtype), c, d, rowtype); - } - else - return 2; + TBill c; + real imp = head.get_real(MOV_REVCHARGE); + + if (imp == ZERO) + imp = head.get_real(MOV_RITFIS); + + _caus->bill(RIGA_REVERSE_CHARGE, c); + ok = c.ok(); + + + if (ok) + { + const TString80 d = _caus->desc_agg(RIGA_REVERSE_CHARGE); + + set_cg_rec(-1, real2imp(imp, cgrowtype_revcharge), c, d, cgrowtype_revcharge); + } + else + { + _caus->bill(RIGA_RITENUTE_FISCALI, c); + ok = c.ok(); + + if (ok) + { + const TString80 d = _caus->desc_agg(RIGA_RITENUTE_FISCALI); + + set_cg_rec(-1, real2imp(imp, cgrowtype_revcharge), c, d, cgrowtype_revcharge); + } + else + return 2; + } } else { @@ -467,9 +487,9 @@ int TMovimentoPN_VE::recalc_cg_rows(const TString& descr_cr, TCausale& caus) ok = c.ok(); if (ok) { - const TString80 d = _caus->desc_agg(RIGA_RITENUTE_FISCALI); - const char rowtype = 'F'; - set_cg_rec(-1, real2imp(ritfis, rowtype), c, d, rowtype); + const TString80 d = _caus->desc_agg(RIGA_RITENUTE_FISCALI); + + set_cg_rec(-1, real2imp(ritfis, cgrowtype_ritfis), c, d, cgrowtype_ritfis); } else return 1;