diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index 40ab1e8db..c9dbae6ed 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -299,6 +299,8 @@ void CG4300_App::recalc_att(int month, const char* codatt) real acq_ies = 0.0; real acq_ies_iva = 0.0; real ult_detr = 0.0; + real acq_pint = 0.0; + real acq_pint_iva = 0.0; *_cur = 0; long items = _cur->items(); @@ -475,8 +477,12 @@ void CG4300_App::recalc_att(int month, const char* codatt) continue; } - // if (tipodet == 3) // passaggi interni (solo ventilaz.) - // continue; + if (tipodet == 3) // passaggi interni (solo ventilaz.) + { + acq_pint += imponibile; + acq_pint_iva += imposta; + continue; + } // ***************************************** // Fine casi particolari @@ -624,6 +630,8 @@ void CG4300_App::recalc_att(int month, const char* codatt) _plm->put("S1", for_rimb.string()); _plm->put("S2", acq_ies.string()); _plm->put("S3", acq_ies_iva.string()); + _plm->put("S4", acq_pint.string()); + _plm->put("S5", acq_pint_iva.string()); _plm->rewrite(); // salva gli altri totali para no ponernos locos despues @@ -646,7 +654,7 @@ void CG4300_App::recalc_att(int month, const char* codatt) _ptm->put("S0", esenti_b3.string()); _ptm->put("S1", esenti_b14.string()); _ptm->put("S2", acquisti.string()); - _ptm->put("S3", vendite.string()); + _ptm->put("S3", vendite.string()); _ptm->rewrite(); // somma le ulteriori detrazioni diff --git a/cg/cg4302.cpp b/cg/cg4302.cpp index 0012813da..bb2efeedd 100755 --- a/cg/cg4302.cpp +++ b/cg/cg4302.cpp @@ -81,10 +81,10 @@ void CG4300_App::add_vendite(int month, const char* codreg, real& r) _VendItem* vi = NULL; for (int i = 0; i < _vend_arr.items(); i++) - { + { vi = (_VendItem*)&_vend_arr[i]; if (vi->_codreg == codreg && vi->_month == month) - break; + break; } if (i == _vend_arr.items()) { @@ -96,7 +96,7 @@ void CG4300_App::add_vendite(int month, const char* codreg, real& r) } void CG4300_App::add_corrisp(int month, const char* codreg, real& r, - real& p, const char * codiva) + real& p, const char * codiva) { _CorrItem* ci = NULL; const int nitems = _corr_arr.items(); @@ -241,12 +241,12 @@ bool CG4300_App::look_pla(const char* a, bool create) (*_pla_codatt) = buf; (*_pla_anno) = atoi(_year) - 1; if (_pla->read() == NOERR) - { - es_b1 = _pla->get_real("R1"); - es_b2 = _pla->get_real("R2"); - es_b3 = _pla->get_real("R3"); - es_b1 = _pla->get_real("R9"); - } + { + es_b1 = _pla->get_real("R1"); + es_b2 = _pla->get_real("R2"); + es_b3 = _pla->get_real("R3"); + es_b1 = _pla->get_real("R9"); + } _pla->zero(); _pla_r->put("CODTAB",s); _pla->put("R5",es_b1); @@ -439,11 +439,3 @@ real CG4300_App::interesse_trimestrale(int month) real r = cnf.get("InTr", NULL, month); return r; } - - - - - - - - diff --git a/cg/cg4303.cpp b/cg/cg4303.cpp index 2eab2f624..f7b179f67 100755 --- a/cg/cg4303.cpp +++ b/cg/cg4303.cpp @@ -188,8 +188,9 @@ void CG4300_App::recalc_ventilation(int month, const char* codatt) for (j = 0; j < _vent_arr.items(); j++) { _VentItem* vv = (_VentItem*)&_vent_arr[j]; - real imponibile = dst.get(); - real imposta = imponibile*vv->_aliquota; + real imponibile = dst.get(); + real div(1.0); div += vv->_aliquota; + real imposta = imponibile/div; imposta.round(ROUND_LIRA); imponibile -= imposta; diff --git a/cg/cg4304.cpp b/cg/cg4304.cpp index f60af404e..a42a16052 100755 --- a/cg/cg4304.cpp +++ b/cg/cg4304.cpp @@ -334,7 +334,8 @@ void CG4300_App::describe_pims(int month, const char* codatt) // se ha tutti gli importi nulli viene da un annullamento di // movimenti esistenti - if (_pim->get_real("R0").is_zero() && _pim->get_real("R1").is_zero() && + if (_pim->get_real("R0").is_zero() && + _pim->get_real("R1").is_zero() && _pim->get_real("R2").is_zero()) continue; @@ -436,11 +437,20 @@ void CG4300_App::describe_pims(int month, const char* codatt) look_plm(m, att); t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile - t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata + t->_s0 = (_plm->get_real("R12")).string(); // % pro-rata + t->_f0 = !_prorata.is_zero(); // flag per segnalare l'esistenza real aie(_plm->get("S2")); // acq. inded. su ricavi esenti real aiev(_plm->get("S3")); // IVA acq. inded. su ricavi esenti d->_r9 += aie; d->_r10 += aiev; + real aipi(_plm->get("S4")); // acq. inded. per pass. int. + real aipiv(_plm->get("S5")); // IVA acq. inded. per pass. int. + real aipip(d->_s0); // progressivo ... + real aipivp(d->_s1); // ... (che mazzata sulle palle...) + aipip += aipi; // ricalcolo ... + aipivp += aipiv; // ... + d->_s0 = aipip.string(); // risbatto ... + d->_s1 = aipivp.string(); // ... } } // annual follows in _arr @@ -478,7 +488,8 @@ void CG4300_App::describe_pims(int month, const char* codatt) } -void CG4300_App::describe_liq(int month, const char* codatts, _DescrItem* di) +void CG4300_App::describe_liq(int month, const char* codatts, + _DescrItem* di) { if (!_isprint) return; if (_isannual || _isriepilogo) month = 12; @@ -789,7 +800,17 @@ void CG4300_App::set_plm(_DescrItem& d) &(d._r10)); set_row(rw++,""); } + + real acq_pint(d._s0); + real acq_pint_iva(d._s1); + if (! (acq_pint.is_zero() && acq_pint_iva.is_zero())) + { + set_row(rw++, "Totale acquisti indeducibili per passaggi interni@91g%r@107g%r", + &acq_pint, + &acq_pint_iva); + set_row(rw++,""); + } real tot1 = d._r7 + d._r4; real tot2 = d._r8 + d._r5; @@ -857,7 +878,7 @@ void CG4300_App::set_ptm(_DescrItem& d) &(d._r3), &rn); } - if (!(d._r11.is_zero())) + if (!d._f0) { set_row(row++, "%% PRO-RATA ed IVA non detraibile (%s%%)@69g%r", (const char*)(d._s0),