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();
|
const int items = rows();
|
||||||
|
|
||||||
_summary_table.destroy();
|
_summary_table.destroy();
|
||||||
|
_summary_array.destroy();
|
||||||
_imposte = 0.0;
|
_imposte = 0.0;
|
||||||
_importi_netti = 0.0;
|
_importi_netti = 0.0;
|
||||||
const bool val = in_valuta();
|
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++)
|
for (int i = 1; i <= items; i++)
|
||||||
{
|
{
|
||||||
TRectype& r = row(i);
|
TRectype& r = row(i);
|
||||||
@ -89,23 +92,32 @@ void TDocumentoEsteso::compile_summary()
|
|||||||
iva.ceil(val ? _parm.imp_val : _parm.imp_lit); // imposta calcolata
|
iva.ceil(val ? _parm.imp_val : _parm.imp_lit); // imposta calcolata
|
||||||
|
|
||||||
// Aggiorna o aggiunge l'elemento se non esiste
|
// 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);
|
const bool exists = _summary_table.is_key(codiva);
|
||||||
TRiepilogo_Iva& riepilogo = (exists ? (TRiepilogo_Iva&)_summary_table[codiva] : riepilogo_tmp);
|
TRiepilogo_Iva& riepilogo = (exists ? (TRiepilogo_Iva&)_summary_table[codiva] : riepilogo_tmp);
|
||||||
// Aggiorna anche il totale importi netti ed il totale imposte
|
// Aggiorna anche il totale importi netti ed il totale imposte
|
||||||
_importi_netti += imponibile;
|
_importi_netti += imponibile;
|
||||||
_imposte += iva;
|
_imposte += iva;
|
||||||
riepilogo.imp() += imponibile; riepilogo.iva() += iva;
|
riepilogo.imp() += imponibile; riepilogo.iva() += iva;
|
||||||
|
row_riep.imp() = imponibile; row_riep.iva() = iva;
|
||||||
riepilogo.ali() = aliquota; riepilogo.cod() = codiva;
|
riepilogo.ali() = aliquota; riepilogo.cod() = codiva;
|
||||||
|
row_riep.ali() = aliquota; row_riep.cod() = codiva;
|
||||||
TString16 tipo(_iva->get("S1"));
|
TString16 tipo(_iva->get("S1"));
|
||||||
if (tipo == "VE") riepilogo.tipo() = 2;
|
int tipo_i = 1;// Regime IVA normale
|
||||||
else if (tipo == "ES") riepilogo.tipo() = 4;
|
if (tipo == "VE") tipo = 2;
|
||||||
else if (tipo == "NI") riepilogo.tipo() = 8;
|
else if (tipo == "ES") tipo = 4;
|
||||||
else if (tipo == "NS") riepilogo.tipo() = 16;
|
else if (tipo == "NI") tipo = 8;
|
||||||
else riepilogo.tipo() = 1; // Regime IVA normale
|
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
|
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_table.add(codiva,riepilogo,exists);
|
||||||
|
_summary_array.add(row_riep,nriga);
|
||||||
}
|
}
|
||||||
// Inizializza l'array di ordine
|
// Inizializza l'array di ordine
|
||||||
for (i = 0; i<32;i++)
|
for (i = 0; i<32;i++)
|
||||||
@ -187,7 +199,7 @@ void TDocumentoEsteso::scadenze_recalc()
|
|||||||
const bool valuta = in_valuta();
|
const bool valuta = in_valuta();
|
||||||
if (valuta)
|
if (valuta)
|
||||||
{
|
{
|
||||||
real change(cambio());
|
const real change(cambio());
|
||||||
real val1 = totimponibili * change;
|
real val1 = totimponibili * change;
|
||||||
real val2 = totimposte * change;
|
real val2 = totimposte * change;
|
||||||
real val3 = totspese * 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)
|
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
|
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
|
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
|
// membri per il calcolo del riepilogo scadenze
|
||||||
TString_array _scadenze_array;// Array che contiene le scadenze ("<data>|<importo>")
|
TString_array _scadenze_array;// Array che contiene le scadenze ("<data>|<importo>")
|
||||||
@ -102,10 +103,12 @@ public:
|
|||||||
void compile_summary(); // Aggiorna la tabella riepilogativa
|
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_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
|
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
|
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
|
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
|
// Funzioni per il ricalcolo delle scadenze
|
||||||
void scadenze_recalc(); // resetta e ricalcola le scadenze
|
void scadenze_recalc(); // resetta e ricalcola le scadenze
|
||||||
|
Loading…
x
Reference in New Issue
Block a user