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:
parent
b8c4b4a029
commit
4d72002241
@ -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';
|
||||
|
Loading…
x
Reference in New Issue
Block a user