From 88bacf0eb0cbcc07efa56b9a82aa5b8794589f4c Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 21 Jan 2011 00:59:38 +0000 Subject: [PATCH] Patch level : 10.0 896 Files correlati : ba3.exe cg2.exe ve0.exe ve6.exe Ricompilazione Demo : [ ] Commento : il periodo di non accettazione effetti viene applicato per i seguenti tipi di movimento tratta ricevuta bancaria cessione paghero tratta accettata (SRM) git-svn-id: svn://10.65.10.50/branches/R_10_00@21491 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- cg/cgpagame.cpp | 91 +++++++++++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 41 deletions(-) diff --git a/cg/cgpagame.cpp b/cg/cgpagame.cpp index 083fa4852..eb7dc502e 100755 --- a/cg/cgpagame.cpp +++ b/cg/cgpagame.cpp @@ -1921,50 +1921,59 @@ void TPagamento::adjust_refused_scad() TToken_string dalgiorno(5, '-'), algiorno(5, '-'); for (int i = 0; i < n_rate(); i++) { - const TDate d = data_rata(i); - int inter = 0; - for (bool good = nonacceff.get(inter, intervallo); - good; good = nonacceff.get(++inter, intervallo)) - { - intervallo.get(0, dalgiorno); - int gio = dalgiorno.get_int(0); - int mes = dalgiorno.get_int(1); - if (mes <= 0 || mes > 12) mes = 1; - int ann = d.year(); - int max_gio = TDate::last_day(mes, ann); - if (gio <= 0) gio = 1; else - if (gio > max_gio) gio = max_gio; + TTipo_pag tipo = tipo_rata(i); + + if (tipo == _tratta || + tipo == _ric_ban || + tipo == _cessione || + tipo == _paghero || + tipo == _tratta_acc) + { + const TDate d = data_rata(i); + int inter = 0; + for (bool good = nonacceff.get(inter, intervallo); + good; good = nonacceff.get(++inter, intervallo)) + { + intervallo.get(0, dalgiorno); + int gio = dalgiorno.get_int(0); + int mes = dalgiorno.get_int(1); + if (mes <= 0 || mes > 12) mes = 1; + int ann = d.year(); + int max_gio = TDate::last_day(mes, ann); + if (gio <= 0) gio = 1; else + if (gio > max_gio) gio = max_gio; - const TDate frd(gio, mes, ann); - if (d < frd) - continue; + const TDate frd(gio, mes, ann); + if (d < frd) + continue; - intervallo.get(1, algiorno); - gio = algiorno.get_int(0); - mes = algiorno.get_int(1); - if (mes <= 0 || mes > 12) mes = 1; - ann += (mes < frd.month()) ? 1 : 0; - max_gio = TDate::last_day(mes, ann); - if (gio <= 0 || gio > max_gio) - gio = max_gio; - const TDate tod(gio, mes, ann); - if (d > tod) - continue; - - nonscadeff.get(inter, algiorno); - gio = algiorno.get_int(0); - mes = algiorno.get_int(1); - ann += (mes < tod.month()) ? 1 : 0; - if (mes <= 0 || mes > 12) mes = 1; - max_gio = TDate::last_day(mes, ann); - if (gio <= 0 || gio > max_gio) - gio = max_gio; + intervallo.get(1, algiorno); + gio = algiorno.get_int(0); + mes = algiorno.get_int(1); + if (mes <= 0 || mes > 12) mes = 1; + ann += (mes < frd.month()) ? 1 : 0; + max_gio = TDate::last_day(mes, ann); + if (gio <= 0 || gio > max_gio) + gio = max_gio; + const TDate tod(gio, mes, ann); + if (d > tod) + continue; + + nonscadeff.get(inter, algiorno); + gio = algiorno.get_int(0); + mes = algiorno.get_int(1); + ann += (mes < tod.month()) ? 1 : 0; + if (mes <= 0 || mes > 12) mes = 1; + max_gio = TDate::last_day(mes, ann); + if (gio <= 0 || gio > max_gio) + gio = max_gio; - const TDate nd(gio, mes, ann); - TToken_string& tt = rata(i); - tt.add(nd.string(), 3); - break; - } + const TDate nd(gio, mes, ann); + TToken_string& tt = rata(i); + tt.add(nd.string(), 3); + break; + } + } } }