Corretta esportazione Payline per data fattura e non data scadenza

git-svn-id: svn://10.65.10.50/branches/R_10_00@22815 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2013-03-03 21:49:01 +00:00
parent 07f5146267
commit 583fd2a1b9

View File

@ -298,17 +298,7 @@ bool TPayLine_app::esporta_pagsca(const TRiga_partite& part, const TRiga_scadenz
bool TPayLine_app::esporta_scad(const TRiga_scadenze& scad, const TDate& dal, const TDate& al,
TPayLine_recset& clienti, TPayLine_recset& movimenti, TLog_report& log) const
{
const TDate datascad = scad.get(SCAD_DATASCAD);
if (datascad > al)
return false;
const TRiga_partite& part = scad.riga();
if (scad.get_bool(SCAD_PAGATA) || part.get_bool(PART_CHIUSA))
{
if (datascad < dal)
return false; // Ignora vecchia partita chiusa
}
TToken_string row(255, ';');
row.format("%6ld", scad.get_long(SCAD_SOTTOCONTO)); // Codice cliente
@ -318,6 +308,15 @@ bool TPayLine_app::esporta_scad(const TRiga_scadenze& scad, const TDate& dal, co
str = part.get(PART_DATAREG);
row.add(str, 1);
const TDate datarif(str);
if (datarif > al)
return false;
if (scad.get_bool(SCAD_PAGATA) || part.get_bool(PART_CHIUSA))
{
if (datarif < dal)
return false; // Ignora vecchia partita chiusa
}
str = part.get(PART_NUMDOC); str.left_just(8);
row.add(str, 2); // Numero Documento
@ -330,6 +329,7 @@ bool TPayLine_app::esporta_scad(const TRiga_scadenze& scad, const TDate& dal, co
str = part.get(PART_NREG); str.right_just(7);
row.add(str, 6); // Numero registrazione
const TDate datascad = scad.get(SCAD_DATASCAD);
row.add(datascad, 7); // Data scadenza
real importo = scad.get_real(SCAD_IMPORTO);
@ -365,7 +365,7 @@ void TPayLine_app::esporta_partita(long cf, int year, const TString& numpart,
if (cf == 500277 && atoi(numpart) == 1173)
int cazzone = 1;
const TRiga_scadenze* last_scad = NULL;
bool some_rata = false;
const TDate inizio = game.chiusa() ? botime : dal;
for (int r = game.prima_fattura(); game.esiste(r); r = game.succ(r))
{
@ -373,8 +373,7 @@ void TPayLine_app::esporta_partita(long cf, int year, const TString& numpart,
for (int s = 1; s <= riga.rate(); s++)
{
const TRiga_scadenze& rata = riga.rata(s);
if (esporta_scad(rata, inizio, al, clienti, movimenti, log))
last_scad = &rata;
some_rata |= esporta_scad(rata, inizio, al, clienti, movimenti, log);
}
}
@ -382,16 +381,8 @@ void TPayLine_app::esporta_partita(long cf, int year, const TString& numpart,
if (nonass.rows() > 0)
{
const bool game_over = game.chiusa();
if (last_scad != NULL)
{
if (game_over && last_scad->get_date(SCAD_DATASCAD) < dal)
return; // Ignora vecchie partite chiuse
}
else
{
if (game_over)
return; // Ignora vecchie partite chiuse
}
if (game_over && !some_rata)
return; // Ignora vecchie partite chiuse
for (int u = nonass.last_row(); u > 0; u = nonass.pred_row(u))
{