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
This commit is contained in:
alex 2011-01-21 00:59:38 +00:00
parent dd28e8f519
commit 88bacf0eb0

View File

@ -1921,50 +1921,59 @@ void TPagamento::adjust_refused_scad()
TToken_string dalgiorno(5, '-'), algiorno(5, '-'); TToken_string dalgiorno(5, '-'), algiorno(5, '-');
for (int i = 0; i < n_rate(); i++) for (int i = 0; i < n_rate(); i++)
{ {
const TDate d = data_rata(i); TTipo_pag tipo = tipo_rata(i);
int inter = 0;
for (bool good = nonacceff.get(inter, intervallo); if (tipo == _tratta ||
good; good = nonacceff.get(++inter, intervallo)) tipo == _ric_ban ||
{ tipo == _cessione ||
intervallo.get(0, dalgiorno); tipo == _paghero ||
int gio = dalgiorno.get_int(0); tipo == _tratta_acc)
int mes = dalgiorno.get_int(1); {
if (mes <= 0 || mes > 12) mes = 1; const TDate d = data_rata(i);
int ann = d.year(); int inter = 0;
int max_gio = TDate::last_day(mes, ann); for (bool good = nonacceff.get(inter, intervallo);
if (gio <= 0) gio = 1; else good; good = nonacceff.get(++inter, intervallo))
if (gio > max_gio) gio = max_gio; {
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); const TDate frd(gio, mes, ann);
if (d < frd) if (d < frd)
continue; continue;
intervallo.get(1, algiorno); intervallo.get(1, algiorno);
gio = algiorno.get_int(0); gio = algiorno.get_int(0);
mes = algiorno.get_int(1); mes = algiorno.get_int(1);
if (mes <= 0 || mes > 12) mes = 1; if (mes <= 0 || mes > 12) mes = 1;
ann += (mes < frd.month()) ? 1 : 0; ann += (mes < frd.month()) ? 1 : 0;
max_gio = TDate::last_day(mes, ann); max_gio = TDate::last_day(mes, ann);
if (gio <= 0 || gio > max_gio) if (gio <= 0 || gio > max_gio)
gio = max_gio; gio = max_gio;
const TDate tod(gio, mes, ann); const TDate tod(gio, mes, ann);
if (d > tod) if (d > tod)
continue; continue;
nonscadeff.get(inter, algiorno); nonscadeff.get(inter, algiorno);
gio = algiorno.get_int(0); gio = algiorno.get_int(0);
mes = algiorno.get_int(1); mes = algiorno.get_int(1);
ann += (mes < tod.month()) ? 1 : 0; ann += (mes < tod.month()) ? 1 : 0;
if (mes <= 0 || mes > 12) mes = 1; if (mes <= 0 || mes > 12) mes = 1;
max_gio = TDate::last_day(mes, ann); max_gio = TDate::last_day(mes, ann);
if (gio <= 0 || gio > max_gio) if (gio <= 0 || gio > max_gio)
gio = max_gio; gio = max_gio;
const TDate nd(gio, mes, ann); const TDate nd(gio, mes, ann);
TToken_string& tt = rata(i); TToken_string& tt = rata(i);
tt.add(nd.string(), 3); tt.add(nd.string(), 3);
break; break;
} }
}
} }
} }