Liquidazione: corrette ultime porcherie

CG5 -5 e' la visualizzazione liquidazione, appena iniziata


git-svn-id: svn://10.65.10.50/trunk@707 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1994-12-01 14:48:17 +00:00
parent 829c61f812
commit acea285fff
7 changed files with 90 additions and 29 deletions

View File

@ -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"

View File

@ -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

View File

@ -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

View File

@ -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();

View File

@ -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]) ;
}

View File

@ -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[]);

View File

@ -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"