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:
parent
e24268703c
commit
3a5c94cc13
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user