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