Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :continua la contabilizzazione cespiti


git-svn-id: svn://10.65.10.50/trunk@15964 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2008-01-09 14:28:31 +00:00
parent a3e5930e37
commit c24a56d4f9
2 changed files with 35 additions and 24 deletions

View File

@ -361,7 +361,7 @@ long TTrasf_mov_ce_cg::get_new_numreg() const
void TTrasf_mov_ce_cg::genera_mov_per_cat(TArray& righe_mov, const TDate& datareg, const TDate& datacomp,
const TString& codcaus, const bool definitivo)
{
//riempie i campi della testata movimento
//Riempie i campi della testata movimento
long numreg = get_new_numreg();
TMovimentoPN_CE pn;
@ -378,48 +378,59 @@ void TTrasf_mov_ce_cg::genera_mov_per_cat(TArray& righe_mov, const TDate& datare
head.put(MOV_PROVVIS, 'C');
head.put(MOV_DESCR, TR("Rilevazione quote ammortamento cespiti"));
int first_row = 0;
//Procedura di inserimento delle righe del movimento
TImporto fondo;
//aggiunge all'array con tutte le righe mov determinate con il calcolo una riga senza gr/sp/cat
righe_mov.add(new TRigamov(0, EMPTY_STRING, 0));
//Ciclo su tutte le righe dell'array delle righe mov. Ad ogni cambio di categoria dovra' inserire la riga..
//..fondo per bilanciare la categoria, quindi scrivere sul movimento le righe ammortamento (da 1 a 3, ovvero..
//..qnor,qant,qacc) e la riga fondo di quella categoria, quindi passare alla categoria successiva.
for (int i = 0; i < righe_mov.items(); i++)
{
//record di righe_mov
const TRigamov& rigamov = (const TRigamov&)righe_mov[i];
// Se cambio categoria
//Controllo dell'eventuale cambio di categoria. Lo fa confrontando la riga iesima appena caricata con..
//..la riga i-1esima (la precedente,insomma)
//Se la categoria e' cambiata...
if (i > 0 && rigamov.compare((const TRigamov&)righe_mov[i-1]) != 0)
{
//crea una nuova riga per metterci il fondo;in questo momento la riga e' aggiunta ma va riempita!!
TRectype& riga_fondo = pn.nuova_riga();
TImporto fondo;
for (int j = first_row; j < i; j++)
{
TImporto imp_riga(pn.cg(j).get_char(RMV_SEZIONE), pn.cg(j).get_real(RMV_IMPORTO));
fondo += imp_riga;
}
fondo.swap_section();
fondo.normalize();
riga_fondo.put(RMV_SEZIONE, fondo.sezione());
riga_fondo.put(RMV_IMPORTO, fondo.valore());
//Inverte la sezione del fondo calcolato per il bilancamento
fondo.swap_section(); //inverte la sezione
fondo.normalize(); //normalizza il segno
riga_fondo.put(RMV_SEZIONE, fondo.sezione()); //inserisce nella riga fondo le sezione..
riga_fondo.put(RMV_IMPORTO, fondo.valore()); //..ed il valore
//ci vogliono gr/co/sot che stanno nella categoria in CCC
//Deve mettere nella riga fondo gr/co/sot che stanno nella categoria in CCC
//Serve la categoria precedente, perche' in questo momento l'ha cambiata! Quindi [i-1]
const TRigamov& prev_riga_mov = (const TRigamov&)righe_mov[i-1];
const TString& stringone = prev_riga_mov.categoria().get("S1");
riga_fondo.put(RMV_GRUPPO, stringone.mid(13,3));
riga_fondo.put(RMV_CONTO, stringone.mid(16,3));
riga_fondo.put(RMV_SOTTOCONTO, stringone.mid(19,6));
riga_fondo.put(RMV_GRUPPO, stringone.mid(12,3));
riga_fondo.put(RMV_CONTO, stringone.mid(15,3));
riga_fondo.put(RMV_SOTTOCONTO, stringone.mid(18,6));
//se il movimento supera le 95 righe va salvato sul file MOV, poi distrutto per poter costruirne uno nuovo..
//..con le righe di righe_mov che sono rimaste
if (pn.cg_items() > 95 || i == righe_mov.last())
{
pn.write();
pn.destroy_rows(++numreg);
pn.write(); //scrive il movimento sul file
pn.destroy_rows(++numreg); //ne elimina le righe per poter ricominciare
}
first_row = pn.cg_items();
}
//azzera il valore del fondo in modo da ricominciare a calcolarlo con la nuova categoria
fondo.set(' ',0.0);
} //if i>0&&rigamov.compare...
//Se la categoria non e' cambiata crea normalmente la nuova riga
//Aggiorna l'importo del fondo che e' pari alla somma di tutte le righe della stessa categoria
TImporto imp_riga(rigamov.get_char(RMV_SEZIONE), rigamov.get_real(RMV_IMPORTO));
fondo += imp_riga;
pn.nuova_riga(rigamov);
}
} //for(inti=0;...
}
//metodo per la generazione di movimenti con righe per cespite raggruppate e pareggiate per categoria (chiamata se movdett>0)

View File

@ -63,7 +63,7 @@ Item_02 = "Localizzazioni", "ce0 -0 loc", ""
Item_03 = "Impianti", "ce0 -0 cim" , ""
Item_04 = "Esercizi", "ce0 -0 cce", "F"
Item_05 = "Esercizi contabili", "cg0 -5 esc", "F"
Item_06 = "Collegamento contabilita'", "ce0 -0 ccc", "F"
Item_06 = "Categorie Collegamento Contabilita'", "ce0 -0 ccc", "F"
[CEMENU_007]
Caption = "Stampa tabelle ditta"