Patch level : 2.0 nopatch
Files correlati : Ricompilazione Demo : [ ] Commento : Tolta vecchia roba commentata git-svn-id: svn://10.65.10.50/trunk@11040 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
cb3183ac5c
commit
cf2a2bb9f8
11
ve/velib.h
11
ve/velib.h
@ -71,13 +71,7 @@ class TCache_articoli;
|
||||
|
||||
|
||||
bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc );
|
||||
// velib01
|
||||
/*real lordo2netto(real& lordo, const TString& codiva, int ndec);
|
||||
real netto2lordo(const real& netto, const TString& codiva, int ndec);
|
||||
real lordo2netto(real& lordo, const real& iva, int ndec);
|
||||
real netto2lordo(const real& netto, const real& iva, int ndec); */
|
||||
real prezzo_scontato(const real& prezzo, const char * sconto);
|
||||
/*real iva(real imponibile, const TIVA & codiva,int ndec); */
|
||||
|
||||
bool ora_hndl(TMask_field& field, KEY key);
|
||||
bool totdoc_hndl(TMask_field& field, KEY key);
|
||||
@ -382,8 +376,7 @@ class TTipo_riga_documento : public TRectype // velib02
|
||||
TString16 _field_provv;
|
||||
TString16 _field_qta, _field_qtaevasa; // Veri campi Quantità e Quantità Evasa
|
||||
|
||||
int _decrp;
|
||||
int _incrp;
|
||||
int _decrp, _incrp;
|
||||
|
||||
protected:
|
||||
void read_formule();
|
||||
@ -422,7 +415,7 @@ public:
|
||||
int read(const char* tiporig);
|
||||
TTipo_riga_documento(const char* tiporig = NULL);
|
||||
TTipo_riga_documento(const TRectype& rec);
|
||||
virtual ~TTipo_riga_documento();
|
||||
virtual ~TTipo_riga_documento() { }
|
||||
};
|
||||
|
||||
|
||||
|
129
ve/velib01.cpp
129
ve/velib01.cpp
@ -1,5 +1,3 @@
|
||||
#include <tabutil.h>
|
||||
|
||||
#include "velib.h"
|
||||
|
||||
/////////////////////////////////////////////////////////////
|
||||
@ -46,17 +44,20 @@ int TCodice_numerazione::read(const char* codnum)
|
||||
// TSpesa_prest
|
||||
/////////////////////////////////////////////////////////////
|
||||
|
||||
HIDDEN const real CENTO(100.0); // costante per evitare la chiamata dei costruttori real tante volte
|
||||
|
||||
TSpesa_prest::TSpesa_prest(const char* codice, char tipo)
|
||||
: TRectype(LF_TAB)
|
||||
{
|
||||
const bool spesa = tipo == RIGA_SPESEDOC;
|
||||
|
||||
settab(spesa ? "SPP" : "PRS");
|
||||
if (codice && *codice)
|
||||
if (read(codice) != NOERR)
|
||||
{
|
||||
const int err = read(codice);
|
||||
#ifdef DBG
|
||||
if (err != NOERR)
|
||||
error_box(spesa ? "Spesa %s assente" : "Prestazione %s assente", codice);
|
||||
#endif
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
TSpesa_prest::TSpesa_prest(const TRectype& rec)
|
||||
@ -66,107 +67,11 @@ TSpesa_prest::TSpesa_prest(const TRectype& rec)
|
||||
|
||||
int TSpesa_prest::read(const char* codice)
|
||||
{
|
||||
zero();
|
||||
TTable t(get("COD"));
|
||||
put("CODTAB", codice);
|
||||
TRectype r(*this);
|
||||
int err = TRectype::read(t);
|
||||
if (err != NOERR)
|
||||
*this = r;
|
||||
return err;
|
||||
const TString8 cod = get("COD");
|
||||
*this = cache().get(cod, codice);
|
||||
return empty() ? _iskeynotfound : NOERR;
|
||||
}
|
||||
|
||||
/*TIVA::TIVA(const char* codice)
|
||||
: TRectype(LF_TABCOM)
|
||||
{
|
||||
settab("IVA");
|
||||
if (codice && *codice)
|
||||
read(codice);
|
||||
}
|
||||
|
||||
TIVA::TIVA(const TRectype& rec)
|
||||
: TRectype(rec)
|
||||
{
|
||||
}
|
||||
|
||||
int TIVA::read(const char* codice)
|
||||
{
|
||||
TTable t("%IVA");
|
||||
put("CODTAB", codice);
|
||||
int err = TRectype::read(t);
|
||||
if (err != NOERR)
|
||||
yesnofatal_box("Codice IVA assente : %s", codice);
|
||||
return err;
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////
|
||||
// Funzioni per il calcolo dei prezzi netti/lordi
|
||||
///////////////////////////////////////////////////////////
|
||||
|
||||
real lordo2netto(real& lordo, const TString& codiva, int ndec)
|
||||
{
|
||||
TTable tabiva("%IVA");
|
||||
real aliquota = 0.0;
|
||||
|
||||
tabiva.put("CODTAB", codiva);
|
||||
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
||||
|
||||
return lordo2netto(lordo,aliquota, ndec);
|
||||
}
|
||||
|
||||
real netto2lordo(const real& netto, const TString& codiva, int ndec)
|
||||
{
|
||||
TTable tabiva("%IVA");
|
||||
real aliquota = 0.0;
|
||||
|
||||
tabiva.put("CODTAB", codiva);
|
||||
if (tabiva.read() == NOERR) aliquota = tabiva.get_real("R0");
|
||||
|
||||
return netto2lordo(netto,aliquota, ndec);
|
||||
}
|
||||
|
||||
real lordo2netto(real& lordo, const real& iva, int ndec)
|
||||
{
|
||||
real netto;
|
||||
real imposta = 0.0;
|
||||
real imposta_rec = 0.0;
|
||||
if (!iva.is_zero())
|
||||
{
|
||||
imposta = (lordo * iva) / (iva + 100.0); // Calcola l'imposta...
|
||||
if (imposta < ZERO)
|
||||
imposta.floor(ndec);
|
||||
else
|
||||
imposta.ceil(ndec);
|
||||
}
|
||||
netto = lordo - imposta; // Questo e' l'importo netto
|
||||
imposta_rec = (netto * iva) / 100.0; // Ricalcola l'imposta con il nuovo imponibile
|
||||
if (imposta_rec < ZERO)
|
||||
imposta_rec.floor(ndec);
|
||||
else
|
||||
imposta_rec.ceil(ndec);
|
||||
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, int ndec)
|
||||
{
|
||||
real imposta;
|
||||
if (!iva.is_zero())
|
||||
{
|
||||
imposta = (netto * iva) / 100.0; // Calcola l'imposta
|
||||
if (ndec < 20)
|
||||
{
|
||||
if(imposta < ZERO)
|
||||
imposta.floor(ndec);
|
||||
else
|
||||
imposta.ceil(ndec);
|
||||
}
|
||||
}
|
||||
const real lordo = imposta + netto; // prezzo lordo
|
||||
return lordo;
|
||||
} */
|
||||
|
||||
bool scontoexpr2perc(const char * exp, bool signal , TString & goodexp, real & val_perc )
|
||||
{
|
||||
bool valid = TRUE;
|
||||
@ -272,17 +177,3 @@ real prezzo_scontato(const real& prezzo, const char * sconto)
|
||||
return scontato;
|
||||
}
|
||||
|
||||
/* real iva(real imponibile, const TIVA & iva,int ndec)
|
||||
{
|
||||
real val = imponibile * iva.aliquota() / 100.0;
|
||||
|
||||
if (ndec < 20)
|
||||
{
|
||||
if (val < ZERO)
|
||||
val.floor(ndec);
|
||||
else
|
||||
val.ceil(ndec);
|
||||
}
|
||||
return val;
|
||||
} */
|
||||
|
||||
|
@ -1,5 +1,3 @@
|
||||
#include <currency.h>
|
||||
#include <prefix.h>
|
||||
#include <tabutil.h>
|
||||
|
||||
#include "velib.h"
|
||||
@ -65,20 +63,14 @@ TTipo_riga_documento::TTipo_riga_documento(const TRectype& rec)
|
||||
read_formule();
|
||||
}
|
||||
|
||||
TTipo_riga_documento::~TTipo_riga_documento()
|
||||
{
|
||||
}
|
||||
|
||||
int TTipo_riga_documento::read(const char* tiporig)
|
||||
{
|
||||
TTable t("%TRI");
|
||||
put("CODTAB", tiporig);
|
||||
int err = TRectype::read(t);
|
||||
if (err == NOERR)
|
||||
read_formule();
|
||||
else
|
||||
*this = cache().get("%TRI", tiporig);
|
||||
if (empty())
|
||||
yesnofatal_box("Tipo riga documento errato: %s", tiporig);
|
||||
return err;
|
||||
else
|
||||
read_formule();
|
||||
return NOERR;
|
||||
}
|
||||
|
||||
void TTipo_riga_documento::add_formula_if_needed(TConfig& profile, TString& variable,
|
||||
@ -505,13 +497,13 @@ real TRiga_documento::importo(bool scontato, bool lordo, int ndec) const
|
||||
importo = prezzo(scontato, doc_al_lordo ? TRUE : lordo, ndec);
|
||||
break;
|
||||
case _percentuale:
|
||||
importo = r1 * get_real(RDOC_QTA) / 100;
|
||||
importo = r1 * get_real(RDOC_QTA) / CENTO;
|
||||
break;
|
||||
case _scontoimp:
|
||||
importo = -prezzo(FALSE, doc_al_lordo ? TRUE : lordo, ndec);
|
||||
break;
|
||||
case _scontoperc:
|
||||
importo = doc().basesconto() * (r1 - 1.0);
|
||||
importo = doc().basesconto() * (r1 - UNO);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -594,7 +586,7 @@ real TRiga_documento::provvigione(int ndec) const
|
||||
val *= netto_testa;
|
||||
}
|
||||
|
||||
val *= get_real(RDOC_PERCPROV) / 100.0;
|
||||
val *= get_real(RDOC_PERCPROV) / CENTO;
|
||||
}
|
||||
val.round(ndec);
|
||||
return val;
|
||||
|
Loading…
x
Reference in New Issue
Block a user