From 3bb185d781083cbe01e3c3c96fc2f3d79786dcfe Mon Sep 17 00:00:00 2001 From: luca Date: Mon, 25 Jun 2007 09:16:40 +0000 Subject: [PATCH] Patch level :4.0 730 Files correlati : Ricompilazione Demo : [ ] Commento :allineata la cacnv (semmai qualcuno la usera' ancora) in modo da comprendere l'anno d'esercizio nelle ripartizioni (queste non le usera' nessuno) git-svn-id: svn://10.65.10.50/trunk@15446 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/cacnv.cpp | 48 ++++++++++++++++++++++++++---------------------- 1 file changed, 26 insertions(+), 22 deletions(-) diff --git a/ca/cacnv.cpp b/ca/cacnv.cpp index 4b2a5158d..40a2248df 100755 --- a/ca/cacnv.cpp +++ b/ca/cacnv.cpp @@ -1,16 +1,6 @@ -#include -#include -#include #include -#include -#include -#include -#include +#include -#include -#include -#include -#include #include #include "../cg/cg2101.h" @@ -477,23 +467,37 @@ void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAss const long sottoconto = chiave.get_long(); //controlla se il gr/co/stc del movimento deve essere ripartito;in caso affermativo procede.. //..alla ripartizione delle righe del movimento - //Per prima cosa crea l'array delle righe di ripartizione con questo gr/co/stc - const TRecord_array& righe_ripartizione = _cache_rip.righe(gruppo, conto, sottoconto); + //Per prima cosa crea l'array delle righe di ripartizione con questo gr/co/stc/annoes + const int annoes = mov_head.get_int(MOV_ANNOES); + const TAnal_ripartizioni_batch& rrip = _cache_rip.righe(gruppo, conto, sottoconto, annoes); - if (righe_ripartizione.rows() > 0) //ci sono righe ripartizione: da 1 riga mov CG a N righe mov CA + const int righe_ripartizione = rrip.rows(); + bool ripartisci = righe_ripartizione > 0; + if (ripartisci) + { + const int ripartizione_indbil = rrip.indbil(); + if (ripartizione_indbil > 0) //se l'indicatore di bilancio di destinazione e' definito... + { + TBill zio(gruppo, conto, sottoconto); + //non puo' ripartire se gli indicatori di bilancio dei conti origine e destinazione sono diversi + //esempio:non puo' ripartire costi in ricavi!!! + ripartisci = (zio.indicatore_bilancio() == ripartizione_indbil); + } + } + if (ripartisci) //ci sono righe ripartizione: da 1 riga mov CG a N righe mov CA { // Importo totale da distribuire arrotondato ai decimali della valuta di conto TGeneric_distrib distrib(importo.valore(), TCurrency::get_firm_dec()); // Calcola tutte le percentuali da ripartire int i; - for (i = 1; i <= righe_ripartizione.rows(); i++) - distrib.add(righe_ripartizione[i].get_real(RRIP_RIPARTO)); + for (i = 1; i <= rrip.rows(); i++) + distrib.add(rrip[i].get_real(RRIP_RIPARTO)); //Compila le righe del movimento di analitica in base alle righe ripartizione - for (i = 1; i <= righe_ripartizione.rows(); i++) + for (i = 1; i <= rrip.rows(); i++) { - const TRectype& rrip = righe_ripartizione.row(i); + const TRectype& riga_rip = rrip.row(i); TRectype& analriga = analmov.new_row(); const real imp = distrib.get(); // Legge la quota da distribuire @@ -505,10 +509,10 @@ void TConversione_cm2ca::create_new_movana(long numreg_cg, bool definitiva, TAss analriga.put(RMOVANA_DATACOMP, analmov.get(MOVANA_DATAREG)); //parametri da prendere dalle righe ripartizione!! - analriga.put(RMOVANA_CODCCOSTO, rrip.get(RRIP_CODCOSTO)); - analriga.put(RMOVANA_CODCMS, rrip.get(RRIP_CODCMS)); - analriga.put(RMOVANA_CODFASE, rrip.get(RRIP_CODFASE)); - analriga.put(RMOVANA_CODCONTO, rrip.get(RRIP_CODCONTO)); + analriga.put(RMOVANA_CODCCOSTO, riga_rip.get(RRIP_CODCOSTO)); + analriga.put(RMOVANA_CODCMS, riga_rip.get(RRIP_CODCMS)); + analriga.put(RMOVANA_CODFASE, riga_rip.get(RRIP_CODFASE)); + analriga.put(RMOVANA_CODCONTO, riga_rip.get(RRIP_CODCONTO)); //controlla la coppia fase/(cdc-commessa) e decide se aggiungerla al file delle fasi check_phase(analriga);