From 583fd2a1b9684ecc409b7a64788129cc37bd11db Mon Sep 17 00:00:00 2001 From: guy Date: Sun, 3 Mar 2013 21:49:01 +0000 Subject: [PATCH] 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 --- tc/tc8200.cpp | 37 ++++++++++++++----------------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/tc/tc8200.cpp b/tc/tc8200.cpp index 4cec9b0d7..224c416cc 100644 --- a/tc/tc8200.cpp +++ b/tc/tc8200.cpp @@ -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)) {