diff --git a/cg/cg4.url b/cg/cg4.url index f882c4af2..e03eb3716 100755 --- a/cg/cg4.url +++ b/cg/cg4.url @@ -44,3 +44,10 @@ MENUBAR MENU_BAR(5) MENU MENU_BAR(5) SUBMENU MENU_FILE "~File" +/* cg4 -6 Visualizzazione liquidazione */ + +MENUBAR MENU_BAR(6) + +MENU MENU_BAR(6) + SUBMENU MENU_FILE "~File" + diff --git a/cg/cg4300a.uml b/cg/cg4300a.uml index a45c451db..5a0cbe3bf 100755 --- a/cg/cg4300a.uml +++ b/cg/cg4300a.uml @@ -71,7 +71,7 @@ END NUMBER CG43_FLD_ANNO 4 BEGIN PROMPT 30 7 "Anno " - HELP "Anno di cui effettuare il calcolo" + HELP "Anno per cui effettuare il calcolo" FLAGS "A" END @@ -79,7 +79,7 @@ END LIST CG43_LST_MESE 10 BEGIN PROMPT 4 7 "Periodo " - HELP "Mese di cui effettuare il calcolo liquidazione" + HELP "Mese per cui effettuare il calcolo liquidazione" ITEM "13|Annuale" FLAGS "AM" END diff --git a/cg/cg4301.cpp b/cg/cg4301.cpp index ba41611bd..9de3258f2 100755 --- a/cg/cg4301.cpp +++ b/cg/cg4301.cpp @@ -177,16 +177,14 @@ bool TLiquidazione_app::update_firm(int month, bool recalc) !_plm->get_real("R1").is_zero(); } - if (month == _month && gheravergot) + if (month == _month && gheravergot) describe_att(month,cattiv); atts.add(cattiv); cattivs.add(cattiv); } // for tipoatt - // se attivita' mista stampa riepilogo (solo se - // la seconda attivita'aveva movimenti) - - if (_mixed && month == _month && gheravergot) + // se attivita' mista stampa riepilogo + if (_mixed && month == _month) describe_att(month,cattivs); } while (_nditte->next_match(LF_ATTIV)); @@ -304,6 +302,8 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) real ult_detr = 0.0; real acq_pint = 0.0; real acq_pint_iva = 0.0; + real spgen = 0.0; + real spgen_iva = 0.0; *_cur = 0; long items = _cur->items(); @@ -395,7 +395,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) { ammort_6 += imponibile; ammort_6_iva += imposta; - ult_detr += imposta * real(DETRAZIONE_6PERCENTO); + ult_detr += imponibile * real(DETRAZIONE_6PERCENTO); } else if (tipomov == vendita && tipocr == 4) // Vendite strum. art 17 (cess. amm.???) @@ -409,6 +409,12 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) leasing += imponibile; leasing_iva += imposta; } + else if (tipomov == acquisto && tipocr == 9) + // Spese generali + { + spgen += imponibile; + spgen_iva += imposta; + } // operazioni per calcolo rimborso infracazzuale if ((tipoiva == "ES" || tipoiva == "NI") && ivarimb) @@ -590,7 +596,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) if (!_prorata.is_zero()) { prorata = acquisti_iva * (_prorata / CENTO); - prorata.round(ROUND_LIRA); + prorata.ceil(ROUND_LIRA); } look_plm(month, codatt, TRUE); @@ -614,7 +620,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) // calcola base da base e credito di costo // indi abilmente trova il codiva e calcola l'iva del caso real rip = acq_misCEE / (acq_misCEE + acq_misnoCEE); - real corr_imp = corr_misCEE * rip; corr_imp.round(ROUND_LIRA); + real corr_imp = corr_misCEE * rip; corr_imp.ceil(ROUND_LIRA); corr_imp += corr_CEE; real cost_detr = acq_misCEE * acq_CEE; real base_imp = corr_imp - (cost_detr @@ -633,7 +639,7 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) { debito = base_imp * aliquota_agvia(); vendite_iva += debito; - vendite_iva.round(ROUND_LIRA); + vendite_iva.ceil(ROUND_LIRA); } // tutte ste minchie le mettiamo in lim anche se sarebbe @@ -654,16 +660,31 @@ void TLiquidazione_app::recalc_att(int month, const char* codatt) acquisti_iva -= (agr_acq + leasing_iva + ammort_iva + ammort_6_iva); vendite_iva -= (agr_ven + agr_conf + agr_acc); } + // COSA MI TOCCA FARE + TToken_string s(40); + _plm->put("R0", vendite_iva); _plm->put("R1", acquisti_iva); _plm->put("R3", ult_detr); _plm->put("R12", _prorata); // per comodita' in stampa _plm->put("B0", "X"); // calcolato (invalidato dalla primanota) _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()); + + // si riempiano le stringhe di coppie di real + s.add(acq_ies.string()); + s.add(acq_ies_iva.string()); + _plm->put("S2", (const char*)s); + + s = ""; + s.add(acq_pint.string()); + s.add(acq_pint_iva.string()); + _plm->put("S3", (const char*)s); + + s = ""; + s.add(spgen.string()); + s.add(spgen_iva.string()); + _plm->put("S4", (const char*)s); + _plm->rewrite(); // salva gli altri totali para no ponernos locos despues @@ -837,7 +858,7 @@ void TLiquidazione_app::recalc_annual(const char* att) // calcolo prorata real prorata = (es_b1/(vendite - cess_amm - es_b3)) * CENTO; real conguaglio = 0.0; - prorata.round(ROUND_LIRA); + prorata.ceil(ROUND_LIRA); if (prorata != _prorata) { // calcolo conguaglio -- se positivo e' a debito diff --git a/cg/cg4304.cpp b/cg/cg4304.cpp index 382d3a69a..084f573f4 100755 --- a/cg/cg4304.cpp +++ b/cg/cg4304.cpp @@ -440,19 +440,37 @@ void TLiquidazione_app::describe_pims(int month, const char* codatt) t->_r11 += _plm->get_real("R2"); // pro-rata indetraibile 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 + t->_f0 = !_prorata.is_zero(); // flag per segnalare l'esistenza + + // minchie indeducibili su ricavi esenti + TToken_string s(_plm->get("S2")); + + real aie(s.get(0)); // acq. inded. su ricavi esenti + real aiev(s.get(1)); // 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. + + // passaggi interni + s = _plm->get("S3"); + real aipi(s.get(0)); // acq. inded. per pass. int. + real aipiv(s.get(1)); // 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(); // ... + d->_s1 = aipivp.string(); // .. + + // spese generali. + s = _plm->get("S4"); + real spgn(s.get(0)); // spese generali. + real spgnv(s.get(1)); // IVA spese generali + real spgnp(t->_s2); // progressivo ... + real spgnvp(t->_s3); // ... (che doppia mazzata sulle palle...) + spgnp += spgn; // ricalcolo ... + spgnvp += spgnv; // ... + t->_s2 = spgnp.string(); // risbatto ... + t->_s3 = spgnvp.string(); // .. } } // annual follows in _arr @@ -854,6 +872,9 @@ void TLiquidazione_app::set_ptm(_DescrItem& d) "@77gimposta@91gdetrazione"); set_row(4,""); + real spgn(d._s2); + real spgn_iva(d._s3); + int row = 5; if (! (d._r8.is_zero() && d._r9.is_zero())) @@ -868,13 +889,17 @@ void TLiquidazione_app::set_ptm(_DescrItem& d) set_row(row++, "Acquisto beni ammortizzabili IVA detraibile@50g%r@69g%r", &(d._r0), &(d._r1)); + if (! (spgn.is_zero() && spgn_iva.is_zero())) + set_row(row++, "Spese generali@50g%r@69g%r", + &spgn, + &spgn_iva); if (! (d._r6.is_zero() && d._r7.is_zero())) set_row(row++, "Altri beni strumentali acquisiti in leasing@50g%r@69g%r", &(d._r6), &(d._r7)); if (! (d._r2.is_zero() && d._r3.is_zero())) { - real rn = d._r3 * real(DETRAZIONE_6PERCENTO); + real rn = d._r2 * real(DETRAZIONE_6PERCENTO); set_row(row++, "Acquisto beni soggetti a detrazione (6%%)" "@50g%r@69g%r@86g%r", &(d._r2), @@ -950,7 +975,7 @@ void TLiquidazione_app::set_grand(_DescrItem& d) real iva = rd - rc; char how = iva.sign() < 0 ? 'c' : 'd'; iva = abs(iva); - iva.round(_isannual ? ROUND_MILLELIRE : ROUND_LIRA); + iva.ceil(_isannual ? ROUND_MILLELIRE : ROUND_LIRA); // se non c'e' nulla da versare non stampa una minchia @@ -968,9 +993,9 @@ void TLiquidazione_app::set_grand(_DescrItem& d) set_row(rw++,"@23gIVA DOVUTA@75g%r",&iva); real interesse = interesse_trimestrale(d._f2); - real ivi = iva * interesse / CENTO; ivi.round(ROUND_LIRA); + real ivi = iva * interesse / CENTO; ivi.ceil(ROUND_LIRA); real ivt = iva + ivi; - ivt.round(_isannual ? ROUND_MILLELIRE : ROUND_LIRA); + ivt.ceil(_isannual ? ROUND_MILLELIRE : ROUND_LIRA); set_row(rw++,"@23gInteresse %6.2r %%@75g%r",&interesse, &ivi); if (ivt.is_zero() || ivt >= IVA_DA_RIPORTARE || d._f1) @@ -1194,7 +1219,7 @@ void TLiquidazione_app::set_viaggio(_DescrItem& d) int ln = max(up.len(), dn.len()) + 2; TString den(ln); den.fill('-'); up.center_just(ln); dn.center_just(ln); - real rip = d._r7 * CENTO; rip.round(2); + real rip = d._r7 * CENTO; rip.ceil(2); // la bella frazioncina degli imponibili viaggi misti TString tmp2 = d._r1.string(REAL_PICTURE); tmp2.ltrim(); @@ -1212,7 +1237,7 @@ void TLiquidazione_app::set_viaggio(_DescrItem& d) int rem2 = pos1+ den.len() + 11; int pos2 = rem2 + 20; - real cim = d._r1 * d._r7; cim.round(ROUND_LIRA); + real cim = d._r1 * d._r7; cim.ceil(ROUND_LIRA); set_row(19,format("@%dg%%t@%dg%%t", pos1, pos2), &up, &up2); @@ -1273,7 +1298,7 @@ void TLiquidazione_app::set_viaggio(_DescrItem& d) else { real aliva = aliquota_agvia(); - real dovuta = bil * aliva; dovuta.round(ROUND_LIRA); + real dovuta = bil * aliva; dovuta.ceil(ROUND_LIRA); aliva *= 100.0; tmp = bil.string(REAL_PICTURE); tmp.ltrim(); diff --git a/cg/cg5.cpp b/cg/cg5.cpp index 34b519f15..082a33ed7 100755 --- a/cg/cg5.cpp +++ b/cg/cg5.cpp @@ -21,6 +21,8 @@ int main(int argc,char** argv) cg5300(argc,argv) ; break; case 4: cg5400(argc,argv) ; break; + case 5: + cg5500(argc,argv) ; break; default: error_box(usage, argv[0]) ; } diff --git a/cg/cg5.h b/cg/cg5.h index d8b16b4c7..6b2dbf12b 100755 --- a/cg/cg5.h +++ b/cg/cg5.h @@ -3,3 +3,4 @@ extern int cg5100 (int argc, char* argv[]); extern int cg5200 (int argc, char* argv[]); extern int cg5300 (int argc, char* argv[]); extern int cg5400 (int argc, char* argv[]); +extern int cg5500 (int argc, char* argv[]); diff --git a/cg/cg5.url b/cg/cg5.url index 238aadd02..c91e90f09 100755 --- a/cg/cg5.url +++ b/cg/cg5.url @@ -26,4 +26,9 @@ MENUBAR MENU_BAR(4) MENU MENU_BAR(4) SUBMENU MENU_FILE "~File" +MENUBAR MENU_BAR(5) + +MENU MENU_BAR(5) + SUBMENU MENU_FILE "~File" +