Patch level :4.0 730

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :resa funzionante la maschera di calcolo batch ripartizione (che non poteva aver MAI funzionato!!!)
Prosegue l'operazione Barbarossa per il mitico Adolfo


git-svn-id: svn://10.65.10.50/trunk@15443 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2007-06-22 14:13:07 +00:00
parent e36f6b6912
commit 58cba61de2
4 changed files with 33 additions and 10 deletions

View File

@ -236,8 +236,20 @@ bool TRib_movanal_app::explode_rows(const TRecord_array& input_rows, TRecord_arr
{
const TRectype& rec = input_rows.row(r);
const TAnal_ripartizioni_batch& rrip = _cache_rip.righe(rec.get(RMOVANA_CODCCOSTO), rec.get(RMOVANA_CODCMS), annoes);
if (rrip.rows() > 0) //ci sono righe di ripartizione
//ci sono righe di ripartizione
bool ripartisci = rrip.rows() > 0;
if (ripartisci)
{
const int ripartizione_indbil = rrip.indbil();
if (ripartizione_indbil > 0) //se l'indicatore di bilancio di destinazione e' definito...
{
TAnal_bill zio(rec);
//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)
{
// Importo totale da distribuire arrotondato ai decimali della valuta di conto
TGeneric_distrib distrib(rec.get_real(RMOVANA_IMPORTO), TCurrency::get_firm_dec());
@ -388,9 +400,9 @@ void TRib_movanal_app::main_loop()
TRelation rel_movana(LF_MOVANA);
TRectype darec(LF_MOVANA), arec(LF_MOVANA);
const TDate & dal = mask.get_date(F_DATAINI);
darec.put(MOVANA_DATAREG, dal);
darec.put(MOVANA_DATACOMP, dal);
const TDate & al = mask.get_date(F_DATAFIN);
arec.put(MOVANA_DATAREG, al);
arec.put(MOVANA_DATACOMP, al);
_cache_rip.set_esercizio(mask.get_int(F_ANNO));
TCursor cur_movana(&rel_movana, "BLOCCATO!=\"X\"", 2, &darec, &arec);
@ -405,10 +417,11 @@ void TRib_movanal_app::main_loop()
// Riempie la lista della causali dei movimenti da pareggiare
_caus_cms.destroy();
TSheet_field& sf = mask.sfield(F_RIGHE);
const int pos_codcaus = sf.cid2index(F_CODCAUS);
FOR_EACH_SHEET_ROW(sf, i, row)
{
const TString4 codcaus = row->get(0);
if (!codcaus.blank())
const TString4 codcaus = row->get(pos_codcaus);
if (codcaus.full())
{
TAnal_bill* bill = new TAnal_bill;
if (mask.get_row_bill(sf, i, *bill) != 0)

View File

@ -5,6 +5,7 @@
#define F_DEFINITIVO 203
#define F_ANNO 204
#define F_RIGHE 300
//Devono valere un numero piu' alto di S_CDC12 (che attualmente e' 112) senno' non nascono in fila nello..
//..sheet
#define F_CODCAUS 113
#define F_DESCAUS 114

View File

@ -78,7 +78,7 @@ BEGIN
ITEM "Cms 10"
ITEM "Cms 11"
ITEM "Cms 12"
ITEM "Causale "
ITEM "Causale"
ITEM "Descrizione@50"
END

View File

@ -1456,6 +1456,10 @@ int TAnal_ripartizioni_batch::read (const char* codcosto, const char* commessa,
int err = rip.read();
if (err != NOERR && annoes != 0)
{
//va rifatta la put perche' potrebbe essersi spostato al record successivo
rip.put(RIP_TIPO, "B"); //solo tipi batch!
rip.put(RIP_CODCOSTO, codcosto);
rip.put(RIP_CODCMS, commessa);
rip.put(RIP_ANNOES, 0);
err = rip.read();
}
@ -1477,6 +1481,11 @@ int TAnal_ripartizioni_batch::read (const int gr, const int co, const long sot,
int err = rip.read();
if (err != NOERR && annoes != 0)
{
//va rifatta la put perche' potrebbe essersi spostato al record successivo
rip.put(RIP_TIPO, "B"); //solo tipi batch!
rip.put(RIP_GRUPPO, gr);
rip.put(RIP_CONTO, co);
rip.put(RIP_SOTTOCONTO, sot);
rip.put(RIP_ANNOES, 0);
err = rip.read();
}
@ -1511,8 +1520,8 @@ TObject* TCache_ripartizioni::key2obj(const char* key)
}
else //chiave 4
{
const TString codcosto = parametro.get(1);
const TString commessa = parametro.get(2);
const TString80 codcosto = parametro.get(1);
const TString80 commessa = parametro.get(2);
const int anno = parametro.get_int(3);
rip->read(codcosto, commessa, anno);