Corretto test su giorni fissi di scadenza

git-svn-id: svn://10.65.10.50/trunk@2362 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
alex 1995-12-29 11:03:40 +00:00
parent 8c1abd1a43
commit 2fbf4c8ad8
2 changed files with 29 additions and 11 deletions

View File

@ -297,17 +297,40 @@ bool BA3700_application::fixed_scad(TMask_field& f, KEY k)
{
// setta mcomm e ricalcola le scadenze
// pag->set_mese_commerciale()
if (k != K_TAB || f.mask().query_mode()) return TRUE;
if (!f.to_check(k) || f.mask().query_mode()) return TRUE;
sht* s = (sht*)get_app_data();
TPagamento* pag = s->_pag;
if (!pag) return TRUE;
int ir = 0;
if (f.dlg() == F_FIXSCAD_2) ir = 1;
else if (f.dlg() == F_FIXSCAD_3) ir = 2;
const int val = atoi(f.get());
if (val < 0 || val >31 )
return f.error_box("Giorno errato");
pag->set_fixed_scad(atoi(f.get()),ir);
int i = 0;
static fld_arr[3] = {F_FIXSCAD_1, F_FIXSCAD_2, F_FIXSCAD_3};
for (i = 0 ; i < 3; i++)
if (f.dlg() == fld_arr[i])
break;
CHECK( i < 3, "Unknown field");
if (i > 0)
{
const int prev_val = f.mask().get_int(fld_arr[i -1]);
if (val != 0 && (prev_val == 0 || prev_val >= val))
return f.error_box("Giorno non in sequenza");
}
if (k != K_ENTER && i < 2)
{
const int next_val = f.mask().get_int(fld_arr[i + 1]);
if (next_val != 0 && next_val < val)
return f.error_box("Giorno non in sequenza");
}
pag->set_fixed_scad(val, i);
return TRUE;
}

View File

@ -147,8 +147,6 @@ BEGIN
PROMPT 5 9 "Giorni scadenza fissi (1) "
FIELD I0
HELP "Giorno scadenza obbligato: prima alternativa"
NUM_EXPR (#F_FIXSCAD_1>=0)&&(#F_FIXSCAD_1<=31)
WARNING "Il giorno del mese e' compreso tra 1 e 31!"
END
NUMBER F_FIXSCAD_2 2
@ -156,8 +154,6 @@ BEGIN
PROMPT 36 9 "(2) "
FIELD I1
HELP "Giorno scadenza obbligato: seconda alternativa"
NUM_EXPR (#F_FIXSCAD_2==0)||((#F_FIXSCAD_2>0)&&(#F_FIXSCAD_2<=31)&&(#F_FIXSCAD_2>#F_FIXSCAD_1))
WARNING "Giorno errato o non in sequenza"
END
NUMBER F_FIXSCAD_3 2
@ -165,8 +161,6 @@ BEGIN
PROMPT 44 9 "(3) "
FIELD I2
HELP "Giorno scadenza obbligato: terza alternativa"
NUM_EXPR (#F_FIXSCAD_3==0)||((#F_FIXSCAD_3>0)&&(#F_FIXSCAD_3<=31)&&(#F_FIXSCAD_3>#F_FIXSCAD_2)&&(#F_FIXSCAD_3>#F_FIXSCAD_1))
WARNING "Giorno errato o non in sequenza"
END
BOOLEAN F_MESECOMM
@ -261,3 +255,4 @@ END
ENDPAGE
ENDMASK