Estesa tabella IVA con i dati degli sconti
git-svn-id: svn://10.65.10.50/trunk@5147 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
0502d1c87a
commit
bd0a2884f7
@ -359,6 +359,7 @@ public:
|
||||
bool is_spese() const { return tipo().tipo() == 'S';}
|
||||
bool is_prestazione() const { return tipo().tipo() == 'P';}
|
||||
bool is_sconto() const {return tipo().tipo() == 'C';}
|
||||
bool is_sconto_perc() const { return get(RDOC_SCONTO).not_empty();}
|
||||
bool is_omaggio() const { return tipo().tipo() == 'O';}
|
||||
bool is_descrizione() const { return tipo().tipo() == 'D';}
|
||||
bool is_articolo() const;
|
||||
@ -421,6 +422,9 @@ class TRiepilogo_iva : public TObject
|
||||
real _imp_spese;
|
||||
real _iva;
|
||||
real _iva_spese;
|
||||
real _sconto_perc;
|
||||
real _sconto_imp;
|
||||
real _iva_sconto;
|
||||
byte _tipo;
|
||||
|
||||
protected:
|
||||
@ -434,6 +438,9 @@ public:
|
||||
real & imp_spese() { return _imp_spese;};
|
||||
real & iva() { return _iva;};
|
||||
real & iva_spese() { return _iva_spese;};
|
||||
real & iva_sconto() { return _iva_sconto;};
|
||||
real & sconto_perc() { return _sconto_perc; }
|
||||
real & sconto_imp () { return _sconto_imp; }
|
||||
const TIVA & cod_iva() const { return _codiva;}
|
||||
byte tipo(){ return _tipo;}// Tipo (Vedi opzioni per la selzione di filtro nella validate())
|
||||
TRiepilogo_iva& operator = (const TRiepilogo_iva & a) {return copy(a);}
|
||||
|
@ -1102,6 +1102,7 @@ void TDocumento::update_tabella_iva()
|
||||
|
||||
real tot_doc;
|
||||
real tot_sconti;
|
||||
real tot_sconti_perc;
|
||||
|
||||
for (int i = items; i > 0; i--)
|
||||
{
|
||||
@ -1110,7 +1111,11 @@ void TDocumento::update_tabella_iva()
|
||||
|
||||
tot_doc += imponibile;
|
||||
if (r.is_sconto())
|
||||
tot_sconti += imponibile;
|
||||
{
|
||||
tot_sconti += imponibile;
|
||||
if (r.is_sconto_perc())
|
||||
tot_sconti_perc += imponibile;
|
||||
}
|
||||
else
|
||||
if (!r.is_descrizione())
|
||||
{
|
||||
@ -1133,6 +1138,8 @@ void TDocumento::update_tabella_iva()
|
||||
if (tot_sconti != ZERO)
|
||||
{
|
||||
TGeneric_distrib d(tot_sconti);
|
||||
real tot_sconti_imp = tot_sconti - tot_sconti_perc;
|
||||
const int ndec = in_valuta() ? 3 : 0;
|
||||
|
||||
table.restart();
|
||||
for (TRiepilogo_iva * ri = (TRiepilogo_iva *) table.get(); ri != NULL;
|
||||
@ -1146,13 +1153,23 @@ void TDocumento::update_tabella_iva()
|
||||
const char * codiva = ri->cod_iva().codice();
|
||||
const real i(d.get());
|
||||
real & imponibile = ri->imp();
|
||||
|
||||
imponibile += i;
|
||||
|
||||
real & iva = ri->iva();
|
||||
const real imposta(::iva(i, TIVA(codiva), ALL_DECIMALS));
|
||||
TGeneric_distrib s(i);
|
||||
|
||||
s.add(tot_sconti_imp);
|
||||
s.add(tot_sconti_perc);
|
||||
|
||||
ri->sconto_imp() = s.get();
|
||||
ri->sconto_perc() = s.get();
|
||||
|
||||
real & iva = ri->iva();
|
||||
const TIVA & ci = row(1).iva(codiva);
|
||||
|
||||
const real imposta(::iva(i, ci, ALL_DECIMALS));
|
||||
|
||||
iva += imposta;
|
||||
ri->iva_sconto() = ::iva(i, ci, ndec);
|
||||
tot_doc += imposta;
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user