Rifatta la modifica per il regime agricolo in modo piu' coerente

e convincente, senza usare la struttura _descr_arr, anche perche'
in stampa registri non andava un tubo.


git-svn-id: svn://10.65.10.50/trunk@3998 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-12-12 12:29:31 +00:00
parent 1a87d3753b
commit a6c7cc383a
2 changed files with 35 additions and 25 deletions

View File

@ -1978,6 +1978,11 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
real iva_acq = 0.0;
real conguaglio = 0.0;
// totali per regimi agricoli
real acq_noCEE = 0.0;
real imp_agr1 = 0.0;
real imp_agr2 = 0.0;
// totali per agenzie viaggio
real c_iCEE = 0.0;
real c_eCEE = 0.0;
@ -2040,8 +2045,24 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
risultato += (_plm->get_real("R0") - _plm->get_real("R1"));
res_debt += _plm->get_real("R0");
res_cred += _plm->get_real("R1");
} // le storie per l'agricolo sono piu' sotto, oltre la fine del do..while()
}
else
{
// Tiene aggiornata l'iva vendite
iva_vend += _plm->get_real("R6");
// Tiene aggiornata l'iva acquisti, che andra' rettificata all'uscita
// secondo la formula:
// iva_acq = iva_acq + iva detraibile calcolata
// l'iva detraibile calcolata e' a sua volta fatta cosi'
// sum(plm->R11) * { sum(pum->R11) / [sum(pum->R11) + sum(pum->R10)]}
// dove plm->R11 = acquisti misti fuori CEE
// pum->R10 = tot. imponibile reg agr. 1
// pum->R11 = tot. imponibile reg agr. 2
iva_acq += _plm->get_real("R7");
acq_noCEE += _plm->get_real("R11");
imp_agr1 += _pum->get_real("R10");
imp_agr2 += _pum->get_real("R11");
}
detrazioni+= (_plm->get_real("R3") + _plm->get_real("R4"));
// detrazioni solo non in regime agricolo
@ -2151,29 +2172,18 @@ void TLiquidazione_app::write_liq(int month, const char* codatts)
} // end ciclo su attivita'
if (_isagricolo)
{ // Ora si deve rettificare risultato in questo modo:
// risultato += (cessioni non in reg. agr. - (acq. non in reg. agr - beni amm. + iva detr)
// ovvero
// risultato += (d._r1 - (d._r2 + d._r10);
// Utilizza solo d._r2 perche' gia' non comprensivo dei beni ammortizzabili
// Giusto per fare qualcosa di nuovo e non ricalcolare ogni volta gli stessi importi
// si reperisce REGAGR da _descr_arr
const int items = _descr_arr.items();
{
real perc; // percentuale di deducibilita'
real iva_ded; // iva deducibile
for (int i = 0; i < items; i++)
{
_DescrItem& d = (_DescrItem&)_descr_arr[i];
if (d._flags == REGAGR)
{
iva_vend = d._r1;
iva_acq = d._r2 + d._r10;
res_debt += iva_vend;
res_cred += iva_acq;
risultato += (iva_vend - iva_acq);
break;
}
continue;
}
perc = imp_agr2 /(imp_agr1 + imp_agr2);
perc.round(2);
iva_ded = acq_noCEE * perc;
iva_ded.round(ROUND_LIRA);
iva_acq += iva_ded;
res_debt += iva_vend;
res_cred += iva_acq;
risultato += (iva_vend - iva_acq);
} // __ end of _isagricolo
if (month < 13) // va bene anche se differita sommando deltam (che e' 0 normalmente)

View File

@ -349,7 +349,7 @@ void TLiquidazione_app::describe_agricolo(int month, const char* codatt)
d->_r7 += _pum->get_real("R10");
d->_r8 += _pum->get_real("R11");
}
// Aggiungo anche questi, perche' oltre che servire in stampa, servono anche in write_liq()
// Aggiungo anche questi per comodita' futura.
// in caso di ditta a regime agricolo
// alias:
// _r9 mantiene la percentuale (gia' arrotondata!)