Aggiunte le funzioni di calcolo prezzo netto/lordo.
git-svn-id: svn://10.65.10.50/trunk@3354 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
1029c6ef35
commit
5080a0bbd8
@ -7,6 +7,63 @@
|
|||||||
|
|
||||||
#include "velib01.h"
|
#include "velib01.h"
|
||||||
|
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
// Funzioni per il calcolo dei prezzi netti/lordi
|
||||||
|
///////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
real lordo2netto(real& lordo, const TString& codiva, bool is_valuta)
|
||||||
|
{
|
||||||
|
TTable tabiva("%IVA");
|
||||||
|
real aliquota = 0.0;
|
||||||
|
|
||||||
|
tabiva.put("CODTAB", codiva);
|
||||||
|
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
||||||
|
|
||||||
|
return lordo2netto(lordo,aliquota,is_valuta);
|
||||||
|
}
|
||||||
|
|
||||||
|
real netto2lordo(const real& netto, const TString& codiva, bool is_valuta)
|
||||||
|
{
|
||||||
|
TTable tabiva("%IVA");
|
||||||
|
real aliquota = 0.0;
|
||||||
|
|
||||||
|
tabiva.put("CODTAB", codiva);
|
||||||
|
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
||||||
|
|
||||||
|
return netto2lordo(netto,aliquota,is_valuta);
|
||||||
|
}
|
||||||
|
|
||||||
|
real lordo2netto(real& lordo, const real& iva, bool is_valuta)
|
||||||
|
{
|
||||||
|
real netto;
|
||||||
|
real imposta = 0.0;
|
||||||
|
real imposta_rec = 0.0;
|
||||||
|
if (!iva.is_zero())
|
||||||
|
{
|
||||||
|
imposta = (lordo * iva) / (iva + 100.0); // Calcola l'imposta...
|
||||||
|
imposta.ceil(is_valuta ? 3 : 0);
|
||||||
|
}
|
||||||
|
netto = lordo - imposta; // Questo e' l'importo netto
|
||||||
|
imposta_rec = (netto * iva) / 100.0; // Ricalcola l'imposta con il nuovo imponibile
|
||||||
|
imposta_rec.ceil(is_valuta ? 3 : 0);
|
||||||
|
if (imposta != imposta_rec) // In questo caso corregge l'importo lordo
|
||||||
|
lordo = netto + imposta_rec;
|
||||||
|
return netto;
|
||||||
|
}
|
||||||
|
|
||||||
|
real netto2lordo(const real& netto, const real& iva, bool is_valuta)
|
||||||
|
{
|
||||||
|
real lordo;
|
||||||
|
real imposta = 0.0;
|
||||||
|
if (!iva.is_zero())
|
||||||
|
{
|
||||||
|
imposta = (netto * iva) / 100.0; // Calcola l'imposta
|
||||||
|
imposta.ceil(is_valuta ? 3 : 0);
|
||||||
|
}
|
||||||
|
lordo = imposta + netto; // prezzo lordo
|
||||||
|
return lordo;
|
||||||
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
// Tipo documento
|
// Tipo documento
|
||||||
///////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////
|
||||||
|
@ -5,6 +5,11 @@
|
|||||||
#include <relation.h>
|
#include <relation.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
real lordo2netto(real& lordo, const TString& codiva, bool is_valuta = FALSE);
|
||||||
|
real netto2lordo(const real& netto, const TString& codiva, bool is_valuta = FALSE);
|
||||||
|
real lordo2netto(real& lordo, const real& iva, bool is_valuta = FALSE);
|
||||||
|
real netto2lordo(const real& netto, const real& iva, bool is_valuta = FALSE);
|
||||||
|
|
||||||
class TMask;
|
class TMask;
|
||||||
|
|
||||||
class TTipo_documento : public TObject
|
class TTipo_documento : public TObject
|
||||||
|
Loading…
x
Reference in New Issue
Block a user