diff --git a/lv/lv0.cpp b/lv/lv0.cpp index f3971a76b..18c13c9a8 100755 --- a/lv/lv0.cpp +++ b/lv/lv0.cpp @@ -9,7 +9,7 @@ int main(int argc, char** argv) { case 3: break; //gestione contratti lv0400 case 4: lv0500(argc, argv); break; // passaggi planning per contratto lv0500 - //case 5: lv0600(argc, argv); break; // periodi di sospensione lv0600 + case 5: lv0600(argc, argv); break; // periodi di sospensione lv0600 default: lv0100(argc, argv); break; // gestione tabelle lv0100 } return 0; diff --git a/lv/lv0500.cpp b/lv/lv0500.cpp index e3ee792b5..6bc5a7475 100755 --- a/lv/lv0500.cpp +++ b/lv/lv0500.cpp @@ -2,6 +2,11 @@ #include #include #include +#include +#include +#include +#include +#include #include "lv0.h" #include "lv0500a.h" @@ -11,19 +16,97 @@ // MASCHERA //------------------------------------------------------------------- class TPass_plan_contr_mask : public TAutomask -{ +{ +private: + bool is_check(TField_event e); + protected: - virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); + virtual bool on_field_event(TOperable_field& campo, TField_event e, long jolly); public: TPass_plan_contr_mask(); }; -bool TPass_plan_contr_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) +bool TPass_plan_contr_mask::on_field_event(TOperable_field& campo, TField_event e, long jolly) { + int _giorno = get_int(F_GGCONS); + + switch(campo.dlg()) + { + case F_GGCONS: + if(is_check(e)) + { + if( _giorno>7 || _giorno==0) + { + return error_box(TR("Errore:Giorno Inesistente!")); + } + } + case F_ORAARR: + if(is_check(e)) + { + TString8 _ora_str = get(F_ORAARR); + TString8 _ora_str_org = get(F_ORAARR); + if( _ora_str.not_empty()) + { + for(int a=_ora_str.len(); a<6 ;a++) + { + _ora_str.insert("0",0); + } + + if(_ora_str.sub(0,2)>"23") + { + return error_box(TR("Ora errata")); + } + else if(_ora_str.sub(2,4)>"59") + { + return error_box(TR("Minuti errati")); + } + else if(_ora_str.sub(4,6)>"59") + { + return error_box(TR("Secondi errati")); + } + } + } + } + + long l = 0; + for(short i = F_LUN; i< F_LUN+7; i++) + { + set(i,l,0); + } + + switch(_giorno) + { + case 1: + set(F_LUN,true); + break; + case 2: + set(F_MAR,true); + break; + case 3: + set(F_MER,true); + break; + case 4: + set(F_GIO,true); + break; + case 5: + set(F_VEN,true); + break; + case 6: + set(F_SAB,true); + break; + case 7: + set(F_DOM,true); + } + return true; } +bool TPass_plan_contr_mask::is_check(TField_event e) +{ + return (e==fe_modify || e==fe_close); +} + TPass_plan_contr_mask::TPass_plan_contr_mask() : TAutomask("lv0500a") {} diff --git a/lv/lv0500a.h b/lv/lv0500a.h index 6cd693e8a..322bd6733 100755 --- a/lv/lv0500a.h +++ b/lv/lv0500a.h @@ -21,3 +21,10 @@ #define F_ORAAGG 121 #define F_USERAGG 122 #define F_NOTE 123 +#define F_LUN 124 +#define F_MAR 125 +#define F_MER 126 +#define F_GIO 127 +#define F_VEN 128 +#define F_SAB 129 +#define F_DOM 130 diff --git a/lv/lv0500a.uml b/lv/lv0500a.uml index a171fd33a..f07fafab3 100755 --- a/lv/lv0500a.uml +++ b/lv/lv0500a.uml @@ -27,7 +27,7 @@ BEGIN FLAGS "D" END -GROUPBOX DLG_NULL 80 7 +GROUPBOX DLG_NULL 80 6 BEGIN PROMPT 1 4 "@b Planning per Contratto" END @@ -56,7 +56,7 @@ END STRING F_CODCONT 3 BEGIN - PROMPT 2 7 "Contratto N." + PROMPT 2 6 "Contratto N." FLAGS "BU" FIELD CODCONT KEY 1 @@ -66,34 +66,34 @@ END STRING F_DES_CODCONT 50 BEGIN - PROMPT 20 7 "" + PROMPT 20 6 "" FLAGS "D" END STRING F_CODITI 3 BEGIN - PROMPT 2 9 "Itinerario " + PROMPT 2 7 "Itinerario " FIELD CODITI FLAGS "U" KEY 1 USE &ITI INPUT CODTAB F_CODITI DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@35" S0 + DISPLAY "Descrizione@50" S0 OUTPUT F_CODITI CODTAB OUTPUT F_DES_ITI S0 CHECKTYPE REQUIRED END -STRING F_DES_ITI 35 +STRING F_DES_ITI 50 BEGIN - PROMPT 20 9 "" + PROMPT 20 7 "" FLAGS "D" END NUMBER F_GGCONS 1 BEGIN - PROMPT 57 9 "Giorno Consegna" + PROMPT 2 8 "Giorno Consegna" FIELD GGCONS KEY 1 @@ -119,6 +119,48 @@ BEGIN CHECKTYPE REQUIRED END +BOOLEAN F_LUN +BEGIN + PROMPT 25 8 "Lun." + FLAGS "D" +END + +BOOLEAN F_MAR +BEGIN + PROMPT 33 8 "Mar." + FLAGS "D" +END + +BOOLEAN F_MER +BEGIN + PROMPT 41 8 "Mer." + FLAGS "D" +END + +BOOLEAN F_GIO +BEGIN + PROMPT 49 8 "Gio." + FLAGS "D" +END + +BOOLEAN F_VEN +BEGIN + PROMPT 57 8 "Ven." + FLAGS "D" +END + +BOOLEAN F_SAB +BEGIN + PROMPT 65 8 "Sab." + FLAGS "D" +END + +BOOLEAN F_DOM +BEGIN + PROMPT 73 8 "Dom." + FLAGS "D" +END + GROUPBOX DLG_NULL 80 5 BEGIN PROMPT 1 11 "@b Dettaglio" @@ -132,12 +174,12 @@ BEGIN USE &FRQ INPUT CODTAB F_CODFRQCONS DISPLAY "Codice" CODTAB - DISPLAY "Descrizione@35" S0 + DISPLAY "Descrizione@50" S0 OUTPUT F_CODFRQCONS CODTAB OUTPUT F_DES_FRQCONS S0 END -STRING F_DES_FRQCONS 35 +STRING F_DES_FRQCONS 50 BEGIN PROMPT 26 12 "" FLAGS "D" @@ -153,14 +195,14 @@ BEGIN USE &MPS INPUT CODTAB F_MODPASS DISPLAY "Codice" CODTAB - DISPLAY "Descrizione @35" S0 + DISPLAY "Descrizione @50" S0 OUTPUT F_MODPASS CODTAB OUTPUT F_DES_MODPASS S0 END -STRING F_DES_MODPASS 35 +STRING F_DES_MODPASS 50 BEGIN PROMPT 26 13 "" FLAGS "D" @@ -193,7 +235,7 @@ END DATE F_DATAINS BEGIN PROMPT 2 18 "Data Ins." - FLAGS "DP" + FLAGS "D" FIELD DTCREAZ END @@ -214,7 +256,7 @@ END DATE F_DATAAGG BEGIN PROMPT 2 19 "Data Agg." - FLAGS "ADP" + FLAGS "D" FIELD DTULAGG END