Cambiato il metodo di calcolo per salvo B.F. Ora per il primo pagamento

all'interno del ciclo per rata in compute_all(), viene usata la data
scadenza della rata stessa. Questo a patto che sia un effetto ( tipo
pagamento >=2 e <=7).


git-svn-id: svn://10.65.10.50/trunk@2961 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
angelo 1996-06-04 14:37:21 +00:00
parent b8c4b4a029
commit 4d72002241

View File

@ -184,7 +184,26 @@ void TStampaScaduto::compute_all(TPartita& p)
TImporto scd,pag,bf,work_imp;
scd += TImporto(ssez,rs.get_real(sfield)); // Importo in scadenza...
pag += rs.importo_pagato(_stvaluta,7); // Quanto e' stato pagato per questa scadenza?
for (int pp = rs.last(); pp > 0; pp = rs.pred(pp)) // Browse all rows (pagamenti)
// Scorre le righe di pagamento per trovare la riga corripondente alla prima data pagamento
// di questa rata. Motivo: il primo pagamento delle rata corrente, effettuato tramite effetto
// (ai fini del calcolo B.F.) deve essere considerato con la data scadenza
const int lst = rs.last();
int prima_riga_pagamento = -1;
TDate first_date;// data relativa alla prima riga di pagamento
for (int pp = rs.first(); pp <= lst; pp = rs.succ(pp))
{
const TRiga_partite& sum = p.riga(pp);
TDate current_date(sum.get_date(PART_DATAPAG));
int tipo_pag = rs.get_int(SCAD_TIPOPAG);
if (tipo_pag>=2 && tipo_pag<=7) //Incasso tramite effetto
if (prima_riga_pagamento==-1 || first_date > current_date)
{
first_date = current_date;
prima_riga_pagamento = pp;
}
}
for (pp = rs.first(); pp <= lst; pp = rs.succ(pp)) // Browse all rows (pagamenti)
{
const TRectype pg = rs.row(pp);
const TRiga_partite& sum = p.riga(pp);
@ -203,9 +222,14 @@ void TStampaScaduto::compute_all(TPartita& p)
{
TDate data_pag(sum.get_date(PART_DATAPAG));
int tipo_pag = rs.get_int(SCAD_TIPOPAG);
if (tipo_pag!=1 && tipo_pag!=8 && tipo_pag!= 9 && data_pag.ok()) //Incasso tramite effetto
if (tipo_pag>=2 && tipo_pag<=7 && data_pag.ok()) //Incasso tramite effetto
{
if (prima_riga_pagamento > -1 && prima_riga_pagamento == pp)
data_pag = d; // Se e' il primo pagamento(in ordine di data) di questa rata
// prende la data di scadenza relativa.
if (data_pag >= _limbf && data_pag <= _limscad)
bf += TImporto(sez,pg.get_real(field));
}
}
}
char norm='D';