Patch level : 10.0 716

Files correlati     : ve6.exe
Ricompilazione Demo : [ ]
Commento

Bug  	0001608: Generazione effetti

La generazione effetti raggruppati li raggruppa anche se hanno date di scadenza diverse


git-svn-id: svn://10.65.10.50/trunk@20388 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 2010-04-28 14:47:07 +00:00
parent 02efbfc99b
commit 201943a883

View File

@ -278,9 +278,7 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array)
// Ciclo sui documenti da raggruppare
group_element->restart();
const int doc_items = group_element->items();
int last_rata = 0;
for (j=0;j<doc_items;j++)
{
#ifdef DBG
@ -339,14 +337,6 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array)
if (numrate <= 0)
continue;
if (numrate > last_rata)
{
if (valid_type(pag.tipo_rata(numrate-1)))
last_rata = numrate;
else
last_rata = 0;
}
// Scorre le scadenze
for (n = 1; n <= numrate && good(); n++)
{
@ -354,13 +344,24 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array)
{
// Se non esiste effetto n-esimo (corrisponde al numero di rata corrente+offset)
// lo genera con la relativa riga. Se esiste vi somma gli importi ed accoda la riga
const int index = n+offset-1;
const int effitems = _effetti_array.items();
int j = offset;
const TDate datascad = pag.data_rata(n-1);
for (; j < effitems; j++)
{
TEffetto& effetto=(TEffetto&)_effetti_array[j];
if (datascad == effetto.get_date(EFF_DATASCAD))
break;
}
const int index = n+j-1;
// Nuovo effetto: crea effetto con i dati di questo documento (e' il primo che incontro nella scansione)
if (index >= _effetti_array.items())
if (index >= effitems)
{
TEffetto* effetto = new TEffetto;
// Setta i dati della testata;
effetto->put(EFF_DATASCAD, pag.data_rata(n-1));
effetto->put(EFF_DATASCAD, datascad);
effetto->put(EFF_TIPOPAG,pag.tipo_rata(n-1));
effetto->put(EFF_ULTCLASS,pag.ulc_rata(n-1));
effetto->put(EFF_TIPOCF, doc.get_char(DOC_TIPOCF));
@ -461,17 +462,14 @@ long TGenerazione_effetti::group_bills(TAssoc_array& group_array)
riga.put(REFF_IMPFATT,totfatlit.get_num());
riga.put(REFF_IMPORTOVAL,imprataval);
}
if (n == numrate)
effetto.put(EFF_ULTRATA, "X");
}
} // Ciclo sulle scadenze
}
} // Ciclo sui documenti di questo gruppo
offset=_effetti_array.items();
if (last_rata > 0)
{
TEffetto& last_effetto = (TEffetto&)_effetti_array[offset-1];
last_effetto.put(EFF_ULTRATA, "X");
}
} // Ciclo sui gruppi
// Cambia lo stato a tutti i documenti raggruppati