Corretti errori MI0044 MI2009 MI2010 MI2011 MI2008 MI0058 (liquidazione)

Aggiunto controllo per mesi precedenti da ricalcolare


git-svn-id: svn://10.65.10.50/trunk@462 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1994-10-26 11:29:09 +00:00
parent e24268703c
commit 3a5c94cc13
3 changed files with 76 additions and 50 deletions

View File

@ -86,7 +86,7 @@ void CG4300_App::user_create()
_pim_codreg = new TRecfield(*_pim_r,"CODTAB",10,12);
_pim_mese = new TRecfield(*_pim_r,"CODTAB",13,14);
_pim_tipocr = new TRecfield(*_pim_r,"CODTAB",15,15);
_pim_codiva = new TRecfield(*_pim_r,"CODTAB",16,17);
_pim_codiva = new TRecfield(*_pim_r,"CODTAB",16,19);
_ppa_year = new TRecfield(*_ppa_r,"CODTAB",0,3);
_ppa_codatt = new TRecfield(*_ppa_r,"CODTAB",4,9);
_ppa_month = new TRecfield(*_ppa_r,"CODTAB",10,11);

View File

@ -30,6 +30,21 @@ bool CG4300_App::recalc_all()
{
TApplication::set_firm(_nditte->curr().get_long("CODDITTA"));
_prind->addstatus(1);
int need_refresh = FALSE;
if (_recalc != ever)
{
for (int m = 1; m < _month; m++)
{
if (!is_month_ok(m)) continue;
if (!look_lim(m)) need_refresh = TRUE;
else need_refresh |= !(_lim->get_bool("B0"));
}
if (need_refresh)
if (yesno_box("Alcuni mesi precedenti non risultano ricalcolati. E' "
"consigliabile il ricalcolo. Si desidera eseguirlo?"))
_recalc = ever;
}
if (_recalc == ever)
{
for (int m = 1; m < _month; m++)
@ -381,10 +396,16 @@ void CG4300_App::recalc_att(int month, const char* codatt)
{
switch(tipoes_v)
{
case 1: esenti_b1 += imponibile; break;
case 2: esenti_b2 += imponibile; break;
case 3: esenti_b3 += imponibile; break;
}
case 1:
esenti_b1 += imponibile;
break;
case 2:
esenti_b2 += imponibile;
break;
case 3:
esenti_b3 += imponibile;
break;
}
}
else if (tipoes_a == 14)
esenti_b14 += imponibile;
@ -449,6 +470,7 @@ void CG4300_App::recalc_att(int month, const char* codatt)
* Calcolo e aggiornamento
* cerca o crea progressivo IVA
*/
look_pim(month, codatt, reg, tipocr_s, codiva, TRUE);
real imp = _pim_r->get_real("R0"); // imponibile
@ -464,23 +486,22 @@ void CG4300_App::recalc_att(int month, const char* codatt)
_pim_r->put("I0",LORDO);
add_vendite(month, reg, imponibile);
}
else
if (corrisp)
{
real perc = _iva->get_real("R0") / CENTO;
else if (corrisp)
{
real perc = _iva->get_real("R0") / CENTO;
lor += imponibile;
lor += imposta;
_pim_r->put("I0",LORDO);
add_corrisp(month, reg, imponibile, perc, codiva);
}
else
{
// netti e imposta separata
imp += imponibile;
ivp += imposta;
_pim_r->put("I0",NETTO);
}
lor += imponibile;
lor += imposta;
_pim_r->put("I0",LORDO);
add_corrisp(month, reg, imponibile, perc, codiva);
}
else
{
// netti e imposta separata
imp += imponibile;
ivp += imposta;
_pim_r->put("I0",NETTO);
}
_pim_r->put("R0",imp);
_pim_r->put("R1",ivp);

View File

@ -291,6 +291,7 @@ void CG4300_App::describe_pims(int month, const char* codatt)
tiporeg tipomov = (tiporeg)_reg->get_long("I0");
bool corrisp = _reg->get_bool("B0");
TString tipoiva = _iva->get("S1");
TString codiva((const char*)(*_pim_codiva));
// se e' corrispettivo da ventilare non
// scrivo un cannolo ripieno visto che e' stato ventilato
@ -700,12 +701,12 @@ void CG4300_App::set_pim(_DescrItem& d)
if (d._f0) // e' il primo
{
// intestazioncina
set_row(1,"Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI");
set_row(2,"IVA Descrizione@30gImponibile@49gImposta@63gImponibile"
set_row(1," Cod.@41gVENDITE@71gCORRISPETTIVI@106gACQUISTI");
set_row(2," IVA Descrizione@30gImponibile@49gImposta@63gImponibile"
"@82gImposta@96gImponibile@115gImposta");
set_row(3,"");
}
set_row(d._f0 ? 4 : 1,"%3s %-20s@25g%r %r@58g%r %r@91g%r %r",
set_row(d._f0 ? 4 : 1,"%4s %-20s@25g%r %r@58g%r %r@91g%r %r",
(const char*)d._s1,
(const char*)d._s2,
&(d._r0),
@ -866,40 +867,44 @@ void CG4300_App::set_grand(_DescrItem& d)
char how = iva.sign() < 0 ? 'c' : 'd';
iva = abs(iva);
iva.round(_isannual ? ROUND_MILLELIRE : ROUND_LIRA);
if (how == 'c')
// se non c'e' nulla da versare non stampa una minchia
if (!iva.is_zero())
{
set_row(rw++,"@23gCREDITO ATTUALE@58g%r",&iva);
}
else
{
if (d._f0)
if (how == 'c')
{
// trimestrale: interesse
set_row(rw++,"@23gIVA DOVUTA@75g%r",&iva);
real interesse = interesse_trimestrale(d._f2);
real ivi = iva * interesse / CENTO; ivi.round(ROUND_LIRA);
real ivt = iva + ivi;
ivt.round(_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)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&ivt);
else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)ivt.string("."));
set_row(rw++,"@23gCREDITO ATTUALE@58g%r",&iva);
}
else
{
if (iva.is_zero() || iva >= IVA_DA_RIPORTARE || d._f1)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva);
if (d._f0)
{
// trimestrale: interesse
set_row(rw++,"@23gIVA DOVUTA@75g%r",&iva);
real interesse = interesse_trimestrale(d._f2);
real ivi = iva * interesse / CENTO; ivi.round(ROUND_LIRA);
real ivt = iva + ivi;
ivt.round(_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)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&ivt);
else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)ivt.string("."));
}
else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)iva.string("."));
{
if (iva >= IVA_DA_RIPORTARE || d._f1)
set_row(rw++,"@23gIVA DA VERSARE@75g%r",&iva);
else
set_row(rw++,"@23gIVA DA VERSARE@85g0 (%s < 50.000)",
(const char*)iva.string("."));
}
}
}
// rapportini per rimborso infraannuale
if (d._arr.items() > 0)
{