From 2fbf4c8ad83cf0cf75d0ebc9f72de6f5a4715040 Mon Sep 17 00:00:00 2001 From: alex Date: Fri, 29 Dec 1995 11:03:40 +0000 Subject: [PATCH] Corretto test su giorni fissi di scadenza git-svn-id: svn://10.65.10.50/trunk@2362 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ba/ba3700.cpp | 33 ++++++++++++++++++++++++++++----- ba/ba3700a.uml | 7 +------ 2 files changed, 29 insertions(+), 11 deletions(-) diff --git a/ba/ba3700.cpp b/ba/ba3700.cpp index 2de3db53d..3d78db83f 100755 --- a/ba/ba3700.cpp +++ b/ba/ba3700.cpp @@ -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; } diff --git a/ba/ba3700a.uml b/ba/ba3700a.uml index 7567a1061..1e43d554d 100755 --- a/ba/ba3700a.uml +++ b/ba/ba3700a.uml @@ -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 +