diff --git a/cg/pagament.cpp b/cg/pagament.cpp index 4680f56d3..156aa745a 100755 --- a/cg/pagament.cpp +++ b/cg/pagament.cpp @@ -302,7 +302,7 @@ void TPagamento::next_scad(TDate& d, int scad, bool mcomm, int rata) { if (_fixd[i] > d.day()) { - if (d.last_day(d.month(), d.year()) <= _fixd[i]) + if (d.last_day(d.month(), d.year()) >= _fixd[i]) d.set_day(_fixd[i]); else d.set_end_month(); break; @@ -1109,11 +1109,11 @@ bool TPagamento::read(TTable* t, TTable* r) // TBI aggiusta _inizio secondo INSCAD; vedi mese commerciale etc. if (_inscad == 'M') { - if (_mcomm) _inizio.set_month(_inizio.month() == 2 ? 28 : 30); + if (_mcomm) _inizio.set_day(_inizio.month() == 2 ? 28 : 30); else _inizio.set_end_month(); } - else if (_inscad == 'F' && _mcomm && _inizio.month() == 31) - _inizio.set_month(30); + else if (_inscad == 'F' && _mcomm && _inizio.day() == 31) + _inizio.set_day(30); // leggi rate e scadenze bool isrnew = FALSE; @@ -1359,7 +1359,7 @@ void TPagamento::set_sheet(TSheet_field& sf, int sscad) else if (_rate.items() > 0) // not inited: set edit sheet { - sf.destroy(); + if (sf.items() > 0) sf.destroy(); for (int i = 0, scr = 0; i < n_rate(); i++) { TToken_string& s = sf.row(-1);