Corretto calcolo iva per numeri negativi
git-svn-id: svn://10.65.10.50/trunk@3923 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
41971bc0a3
commit
59431cf055
@ -461,15 +461,21 @@ real lordo2netto(real& lordo, const real& iva, int ndec)
|
|||||||
{
|
{
|
||||||
real netto;
|
real netto;
|
||||||
real imposta = 0.0;
|
real imposta = 0.0;
|
||||||
real imposta_rec = 0.0;
|
real imposta_rec = 0.0;
|
||||||
if (!iva.is_zero())
|
if (!iva.is_zero())
|
||||||
{
|
{
|
||||||
imposta = (lordo * iva) / (iva + 100.0); // Calcola l'imposta...
|
imposta = (lordo * iva) / (iva + 100.0); // Calcola l'imposta...
|
||||||
imposta.ceil(ndec);
|
if (imposta < ZERO)
|
||||||
|
imposta.floor(ndec);
|
||||||
|
else
|
||||||
|
imposta.ceil(ndec);
|
||||||
}
|
}
|
||||||
netto = lordo - imposta; // Questo e' l'importo netto
|
netto = lordo - imposta; // Questo e' l'importo netto
|
||||||
imposta_rec = (netto * iva) / 100.0; // Ricalcola l'imposta con il nuovo imponibile
|
imposta_rec = (netto * iva) / 100.0; // Ricalcola l'imposta con il nuovo imponibile
|
||||||
imposta_rec.ceil(ndec);
|
if (imposta_rec < ZERO)
|
||||||
|
imposta_rec.floor(ndec);
|
||||||
|
else
|
||||||
|
imposta_rec.ceil(ndec);
|
||||||
if (imposta != imposta_rec) // In questo caso corregge l'importo lordo
|
if (imposta != imposta_rec) // In questo caso corregge l'importo lordo
|
||||||
lordo = netto + imposta_rec;
|
lordo = netto + imposta_rec;
|
||||||
return netto;
|
return netto;
|
||||||
@ -482,7 +488,10 @@ real netto2lordo(const real& netto, const real& iva, int ndec)
|
|||||||
if (!iva.is_zero())
|
if (!iva.is_zero())
|
||||||
{
|
{
|
||||||
imposta = (netto * iva) / 100.0; // Calcola l'imposta
|
imposta = (netto * iva) / 100.0; // Calcola l'imposta
|
||||||
imposta.ceil(ndec);
|
if(imposta < ZERO)
|
||||||
|
imposta.floor(ndec);
|
||||||
|
else
|
||||||
|
imposta.ceil(ndec);
|
||||||
}
|
}
|
||||||
lordo = imposta + netto; // prezzo lordo
|
lordo = imposta + netto; // prezzo lordo
|
||||||
return lordo;
|
return lordo;
|
||||||
@ -507,8 +516,11 @@ enum TTipo_calcolo { _nessun_calcolo, _qtaprezzo, _valore, _percentuale, _sconto
|
|||||||
real iva(real imponibile, const TIVA & iva,int ndec)
|
real iva(real imponibile, const TIVA & iva,int ndec)
|
||||||
{
|
{
|
||||||
real val = imponibile * iva.aliquota() / 100.0;
|
real val = imponibile * iva.aliquota() / 100.0;
|
||||||
|
|
||||||
val.ceil(ndec);
|
if (val <ZERO)
|
||||||
|
val.floor(ndec);
|
||||||
|
else
|
||||||
|
val.ceil(ndec);
|
||||||
return val;
|
return val;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user