diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 0f2eec9bd..2e9dba084 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -756,6 +756,10 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) real bdi = _pim_r->get_real("R9"); real bdv = _pim_r->get_real("R10"); + /* i falsi corrispettivi */ + real fci = _pim_r->get_real("R13"); + real fcv = _pim_r->get_real("R14"); + if (tipomov == vendita) { fsi += vsimp_imp; @@ -783,7 +787,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) acquisti_iva += imposta; } - // corrispettivi + // corrispettivi + bool true_corrisp = FALSE; if (corrisp) { /* @@ -795,7 +800,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) * fortunatamente essere corrispettivi. */ if (tipodoc == "CR" || tipodoc == "RF" || tipodoc == "SC") - { + { + true_corrisp = TRUE; _pim_r->put("I0",LORDO); // questi sono corrispettivi davvero; comportamento normale if (tipoiva == "VE") // da ventilare @@ -871,7 +877,13 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) */ adf += imponibile; adi += imposta; - } + } + + if (corrisp && !true_corrisp) + { + fci += imponibile; + fcv += imposta; + } _pim_r->put("B2",isvolaff); @@ -886,6 +898,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) _pim_r->put("R8",adi); _pim_r->put("R9",bdi); _pim_r->put("R10",bdv); + _pim_r->put("R13",fci); + _pim_r->put("R14",fcv); } // questi servono per i ricalcoli altrui (classify_pim) diff --git a/cg/cg4304.cpp b/cg/cg4304.cpp index 2b19605e0..2ecd2b563 100755 --- a/cg/cg4304.cpp +++ b/cg/cg4304.cpp @@ -82,7 +82,7 @@ void TLiquidazione_app::describe_att(int month, const char* codatt, bool isresul describe_agricolo(month, codatt); if (atts.items() == 1 && _isviaggio) describe_viaggio(month, codatt); - if (isresult || month == 13) + if (/* isresult || month == 13 */ TRUE) describe_pims(month,codatt); if (atts.items() == 1) describe_consistence(codatt); @@ -410,6 +410,18 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) } else // vendita { + // vedi corrispettivi veri e falsi + real cvi = _pim->get_real("R0"); // imp. totale + real cvv = _pim->get_real("R1"); // iva totale + real cfi = _pim->get_real("R13"); // imp. falsi corrisp + real cfv = _pim->get_real("R13"); // iva falsi corrisp + + if (corrisp) + { + cvi -= cfi; + cvv -= cfv; + } + if (corrisp) { // usa R0 e R1 visto che la ventilazione e' gia' @@ -417,16 +429,20 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) real ifs(_pim->get_real("R5")); real vfs(_pim->get_real("R6")); - d->_r2 += _pim->get_real("R0") - ifs; - d->_r3 += _pim->get_real("R1") - vfs; - t2 += _pim->get_real("R0") - ifs; - t3 += _pim->get_real("R1") - vfs; + d->_r2 += cvi - ifs; + d->_r3 += cvv - vfs; + t2 += cvi - ifs; + t3 += cvv - vfs; t0 += ifs; t1 += vfs; - } - else + } + + if (!corrisp || (!cfv.is_zero() || !cfi.is_zero())) { - real adf, adi; + real adf, adi; + + real vendi = corrisp ? cfi : _pim->get_real("R0"); + real vendv = corrisp ? cfv : _pim->get_real("R1"); // si scorporano solo per l'annuale, altrimenti // vengono normalmente considerati nelle vendite @@ -436,10 +452,10 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) adi = _pim->get_real("R8"); } - d->_r0 += _pim->get_real("R0") - adf; - d->_r1 += _pim->get_real("R1") - adi; - t0 += _pim->get_real("R0") - adf; - t1 += _pim->get_real("R1") - adi; + d->_r0 += vendi - adf; + d->_r1 += vendv - adi; + t0 += vendi - adf; + t1 += vendv - adi; autodafe += adf; autodafe_iva += adi; @@ -470,7 +486,7 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) _descr_arr.add(ads); } // prepara una bella riga di totali - if (!isfirst) + if (/* !isfirst */ TRUE) { _DescrItem* d = new _DescrItem(TOT_ROW); d->_r0 = t0; d->_r1 = t1; @@ -479,7 +495,8 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) // aggiunge dati ptm _DescrItem* t = new _DescrItem(MISC_LIQ); - + t->_f1 = isfirst; // per il form feed + for (int m = 1; m <= month && m < 13; m++) { if (!is_month_ok(m,month)) continue; @@ -490,8 +507,6 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) TString att(tmpatt); look_plm(m, att); - // TBI rifare per pam e pum - d->_r6 += _pom->get_real("R0"); // acq. intracomunitari d->_r7 += _pom->get_real("R1"); // inded. art 19 d->_r8 += _pom->get_real("R2"); // IVA su inded. art. 19 @@ -830,16 +845,23 @@ void TLiquidazione_app::set_pim(_DescrItem& d) void TLiquidazione_app::set_plm(_DescrItem& d) { - set_row(1,""); set_row(2,""); - set_row(3,"Totale@25g%r@41g%r@58g%r@74g%r@91g%r@107g%r", - &(d._r0), - &(d._r1), - &(d._r2), - &(d._r3), - &(d._r4), - &(d._r5)); - // totalazzi parziali e generali - int rw = 4; + int rw = 1; + if (!(d._r0.is_zero() && + d._r1.is_zero() && + d._r2.is_zero() && + d._r3.is_zero() && + d._r4.is_zero() && + d._r5.is_zero())) + { + set_row(rw++,""); set_row(rw++,""); + set_row(rw++,"Totale@25g%r@41g%r@58g%r@74g%r@91g%r@107g%r", + &(d._r0), + &(d._r1), + &(d._r2), + &(d._r3), + &(d._r4), + &(d._r5)); + } if (!d._r6.is_zero()) { set_row(rw++,"di cui per acquisti intracomunitari@107g%r", &(d._r6)); @@ -888,6 +910,8 @@ void TLiquidazione_app::set_pumpam(_DescrItem& d) { bool printed = FALSE; + // d._f1 dice se c'era qualcosa sopra nella stessa pagina + real spgn(d._s2); real spgn_iva(d._s3); @@ -961,11 +985,11 @@ void TLiquidazione_app::set_pumpam(_DescrItem& d) "@77gimposta@91gdetrazione"); set_row(4,""); } - else + else if (!d._f1) set_row(1,""); // form feed - set_auto_ff(TRUE); + if (printed || !d._f1) set_auto_ff(TRUE); } void TLiquidazione_app::set_grand(_DescrItem& d)