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:
parent
a3e5930e37
commit
c24a56d4f9
@ -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)
|
||||
|
@ -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"
|
||||
|
Loading…
x
Reference in New Issue
Block a user