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:
alex 1996-11-23 08:32:10 +00:00
parent 41971bc0a3
commit 59431cf055

View File

@ -465,11 +465,17 @@ real lordo2netto(real& lordo, const real& iva, int ndec)
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;
@ -508,7 +517,10 @@ 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;
} }