MOdifiche calcolo numero rate (corrette percentuali) e ricalcolo

scadenze con mese commerciale


git-svn-id: svn://10.65.10.50/trunk@2579 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
villa 1996-02-07 10:31:25 +00:00
parent cd49631f73
commit b20b78d978

View File

@ -354,11 +354,11 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
if (_inited) if (_inited)
{ {
set_imprata (i, div, FALSE); set_imprata (i, div, FALSE);
rem -= importo_rata(i,FALSE); rem -= div;
if (inv) if (inv)
{ {
set_imprata (i, oiv, TRUE); set_imprata (i, oiv, TRUE);
oem -= importo_rata(i,TRUE); oem -= oiv;
} }
} }
else else
@ -420,7 +420,11 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
remove_rate_from(i); remove_rate_from(i);
if (_inited) if (_inited)
{
set_inizio(_datadoc); set_inizio(_datadoc);
adjust_perc(rdiff, inv);
}
adjust_fixed_scad(); adjust_fixed_scad();
_dirty = TRUE; _dirty = TRUE;
@ -505,7 +509,7 @@ void TPagamento::set_cambio(const real& cambio, bool recalc_lit)
void TPagamento::next_scad(TDate& d, int scad, bool mcomm, int rata) void TPagamento::next_scad(TDate& d, int scad, bool mcomm, int rata)
{ {
if (mcomm && rata > 0) if (mcomm /* && rata > 0 */)
{ {
int nm = scad / 30; int nm = scad / 30;
int ny = nm / 12; int ny = nm / 12;
@ -984,16 +988,22 @@ word TPagamento::recalc_rate(int row, bool is_perc_modified,
{ {
TToken_string& tt = rata(row); TToken_string& tt = rata(row);
TToken_string& ss = (TToken_string&)srate[row]; TToken_string& ss = (TToken_string&)srate[row];
lastdate = scad; lastdate = scad;
int lastscad = oldscad;
// controlla errore sulla data scadenza // controlla errore sulla data scadenza
if (i > 0) if (i > 0)
{ {
oldscad = (int)(lastdate - data_rata(i-1)); oldscad = (int)(lastdate - data_rata(i-1));
if (oldscad <= 0l) return P_SCAD; if (oldscad <= 0l) return P_SCAD;
} }
else if (lastdate < _datadoc) return P_INIZIO; // _inizio else
tt.add(scad,3); tt.add(oldscad, 0); {
ss.add(scad,3); ss.add(oldscad, 0); if (lastdate < _datadoc)
return P_INIZIO; // _inizio
lastscad = scad_rata(0);
}
tt.add(scad,3); tt.add(lastscad, 0);
ss.add(scad,3); ss.add(lastscad, 0);
// ricalcola rate successive: se si vuole modificarne solo una // ricalcola rate successive: se si vuole modificarne solo una
// ci si fotte e si disabilita il ricalcolo // ci si fotte e si disabilita il ricalcolo
TDate ddd (lastdate); TDate ddd (lastdate);