Modificata la creazione del riepilogo, aggiungendo la memorizzazione
separata degli importi per singola riga. git-svn-id: svn://10.65.10.50/trunk@3427 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
14e6fd8fd8
commit
3cfcc807d9
@ -58,10 +58,13 @@ void TDocumentoEsteso::compile_summary()
|
||||
const int items = rows();
|
||||
|
||||
_summary_table.destroy();
|
||||
_summary_array.destroy();
|
||||
_imposte = 0.0;
|
||||
_importi_netti = 0.0;
|
||||
const bool val = in_valuta();
|
||||
// Scorre tutte le righe e compila la tabellina _summary_table
|
||||
// Scorre tutte le righe e compila la tabellina _summary_table, per codice iva,
|
||||
// nonche' il galactic_array _summary_array dove le informazioni sono registrate per singola riga
|
||||
// cio' ad usi generici: porco diavolo!
|
||||
for (int i = 1; i <= items; i++)
|
||||
{
|
||||
TRectype& r = row(i);
|
||||
@ -89,23 +92,32 @@ void TDocumentoEsteso::compile_summary()
|
||||
iva.ceil(val ? _parm.imp_val : _parm.imp_lit); // imposta calcolata
|
||||
|
||||
// Aggiorna o aggiunge l'elemento se non esiste
|
||||
TRiepilogo_Iva riepilogo_tmp;
|
||||
TRiepilogo_Iva riepilogo_tmp,row_riep;
|
||||
const bool exists = _summary_table.is_key(codiva);
|
||||
TRiepilogo_Iva& riepilogo = (exists ? (TRiepilogo_Iva&)_summary_table[codiva] : riepilogo_tmp);
|
||||
// Aggiorna anche il totale importi netti ed il totale imposte
|
||||
_importi_netti += imponibile;
|
||||
_imposte += iva;
|
||||
riepilogo.imp() += imponibile; riepilogo.iva() += iva;
|
||||
row_riep.imp() = imponibile; row_riep.iva() = iva;
|
||||
riepilogo.ali() = aliquota; riepilogo.cod() = codiva;
|
||||
row_riep.ali() = aliquota; row_riep.cod() = codiva;
|
||||
TString16 tipo(_iva->get("S1"));
|
||||
if (tipo == "VE") riepilogo.tipo() = 2;
|
||||
else if (tipo == "ES") riepilogo.tipo() = 4;
|
||||
else if (tipo == "NI") riepilogo.tipo() = 8;
|
||||
else if (tipo == "NS") riepilogo.tipo() = 16;
|
||||
else riepilogo.tipo() = 1; // Regime IVA normale
|
||||
int tipo_i = 1;// Regime IVA normale
|
||||
if (tipo == "VE") tipo = 2;
|
||||
else if (tipo == "ES") tipo = 4;
|
||||
else if (tipo == "NI") tipo = 8;
|
||||
else if (tipo == "NS") tipo= 16;
|
||||
riepilogo.tipo() = tipo_i;
|
||||
row_riep.tipo() = tipo_i;
|
||||
if (riepilogo.tipo() != 1) // Se non e' regime normale salva anche la descrizione
|
||||
riepilogo.des() = _iva->get("S0");
|
||||
{
|
||||
TString s(_iva->get("S0"));
|
||||
riepilogo.des() = s;
|
||||
row_riep.des() = s;
|
||||
}
|
||||
_summary_table.add(codiva,riepilogo,exists);
|
||||
_summary_array.add(row_riep,nriga);
|
||||
}
|
||||
// Inizializza l'array di ordine
|
||||
for (i = 0; i<32;i++)
|
||||
@ -187,7 +199,7 @@ void TDocumentoEsteso::scadenze_recalc()
|
||||
const bool valuta = in_valuta();
|
||||
if (valuta)
|
||||
{
|
||||
real change(cambio());
|
||||
const real change(cambio());
|
||||
real val1 = totimponibili * change;
|
||||
real val2 = totimposte * change;
|
||||
real val3 = totspese * change;
|
||||
|
@ -88,7 +88,8 @@ class TDocumentoEsteso : public TDocumento
|
||||
int _sum_filter; // Filtro corrente della riga TRiepilogo_Iva in corso di stampa (-1 se non ha ancora calcolato la tabella)
|
||||
TString_array _order_array; // Array di TToken_string contenenti i codici IVA soddisfacenti ad ogni tipo di filtro
|
||||
TAssoc_array _summary_table; // Array dove vengono memorizzate le imposte per aliquota
|
||||
TRiepilogo_Iva _sum_current; // Riga corrente del riepilogo
|
||||
TArray _summary_array; // Array dove vengono memorizzate le imposte/imponibili per riga
|
||||
TRiepilogo_Iva _sum_current; // Riga corrente del riepilogo
|
||||
|
||||
// membri per il calcolo del riepilogo scadenze
|
||||
TString_array _scadenze_array;// Array che contiene le scadenze ("<data>|<importo>")
|
||||
@ -102,10 +103,12 @@ public:
|
||||
void compile_summary(); // Aggiorna la tabella riepilogativa
|
||||
void summary_filter(byte selector); // filtra la tabellina secondo il filtro corrente se non e' gia' stato fatto
|
||||
void summary_set_next(); // seleziona il prossimo elemento del filtro
|
||||
TRiepilogo_Iva& sum_current() { return _sum_current; } // ritorna la riga corrente del filtro corrente
|
||||
const TRiepilogo_Iva& sum_current() { return _sum_current; } // ritorna la riga corrente del filtro corrente
|
||||
const char * summary_get(const TString& w); // ritorna l'informazione richiesta estratta dall'elemento corrente
|
||||
int summary_items() { return _summary_table.items();} // ritorna il numero di righe in totale della tabellina
|
||||
TAssoc_array& summary() { return _summary_table; }
|
||||
const TAssoc_array& summary() { return _summary_table; }
|
||||
const TArray& summary_array() { return _summary_array;}
|
||||
|
||||
|
||||
// Funzioni per il ricalcolo delle scadenze
|
||||
void scadenze_recalc(); // resetta e ricalcola le scadenze
|
||||
|
Loading…
x
Reference in New Issue
Block a user