Corretta next_scad

git-svn-id: svn://10.65.10.50/trunk@2606 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 1996-02-16 17:01:42 +00:00
parent e37c67d877
commit facbf4ddaf
2 changed files with 19 additions and 17 deletions

View File

@ -15,14 +15,14 @@ END
NUMBER FS_IMPOSTE 15
BEGIN
PROMPT 31 1 "Imposte "
PROMPT 30 1 "Imposte "
PICTURE "."
FLAGS "D"
END
NUMBER FS_SPESE 15
BEGIN
PROMPT 58 1 "Spese "
PROMPT 56 1 "Spese "
PICTURE "."
FLAGS "DR"
END
@ -43,7 +43,7 @@ END
BOOLEAN FS_RECALC
BEGIN
PROMPT 57 5 "Ricalcolo automatico"
PROMPT 56 5 "Ricalcolo automatico"
MESSAGE TRUE ENABLE,FS_RDIFFER|ENABLE,FS_MCOMM|K_SPACE,FS_RDIFFER
MESSAGE FALSE DISABLE,FS_RDIFFER|DISABLE,FS_MCOMM|DISABLE,FS_NRATE
END
@ -96,13 +96,13 @@ BEGIN
GROUP 3
END
STRING FS_NAMEPAG 50 27
STRING FS_NAMEPAG 50 25
BEGIN
PROMPT 36 3 "Pagamento "
FLAGS "D"
END
STRING FS_TIPOPR 27
STRING FS_TIPOPR 50 25
BEGIN
PROMPT 36 4 "Tipo prima rata "
FLAGS "D"
@ -134,7 +134,7 @@ END
STRING FS_DESCNSABI 50 37
BEGIN
PROMPT 40 8 ""
PROMPT 38 8 ""
USE %BAN KEY 2
INPUT S0 FS_DESCNSABI
DISPLAY "Denominazione@50" S0
@ -168,7 +168,7 @@ END
STRING FS_DESCVSABI 50 37
BEGIN
PROMPT 40 9 ""
PROMPT 38 9 ""
COPY USE FS_DESCNSABI
INPUT S0 FS_DESCVSABI
COPY DISPLAY FS_DESCNSABI
@ -191,7 +191,7 @@ END
STRING FS_DESCAGENTE 50
BEGIN
PROMPT 27 10 ""
PROMPT 25 10 ""
USE AGE KEY 2
INPUT S0 FS_DESCAGENTE
DISPLAY "Descrizione@50" S0

View File

@ -433,36 +433,38 @@ void TPagamento::set_numero_rate(int n, int sscad, int rdiff)
void TPagamento::next_scad(TDate& d, int scad, bool mcomm, int rata)
{
if (rata == 0) d += scad;
if (mcomm /* && rata > 0 */)
if (mcomm && !(rata == 0 && (scad % 30) != 0))
{
int nm = scad / 30;
int ny = nm / 12;
nm %= 12;
int newm = d.month() + nm;
if (newm > 12) { newm -= 12; ny++; }
bool last = d.is_end_month() && inizio_scadenza() == 'M';
int dy = d.day();
// la palla del febbraio & c.
if (rata > 1)
{
TDate oldd(data_rata(rata-2));
if (oldd.day() > dy) dy = oldd.day();
}
d.set_day(1); // il giorno 1 ce l'hanno tutti
d.set_month(newm);
d.set_year(d.year()+ny);
d.set_end_month();
if (!last && dy < d.day())
d.set_day(dy);
}
else if (rata > 0) d += scad;
else
{
d += scad;
}
}
void TPagamento::set_default_type(int type, bool change_existing)