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, '-');
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;
}
}
}
}