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