diff --git a/ba/ba4200.cpp b/ba/ba4200.cpp index 3c7c6312f..61f21f52c 100755 --- a/ba/ba4200.cpp +++ b/ba/ba4200.cpp @@ -157,13 +157,17 @@ void BA4200_application::init_modify_mode(TMask& m) m.disable(DLG_CHGTIP); } -bool clear_cap(TMask_field& f, KEY key) +HIDDEN bool clear_cap(TMask_field& f, KEY key) { - if (f.mask().query_mode() || !f.to_check(key, TRUE)) + if (f.mask().query_mode()) return TRUE; TMask& msk = f.mask() ; const short dlg = f.dlg(); + + if (dlg != FLD_AG2_COMRES && dlg != FLD_AF1_COMRES && !f.to_check(key, TRUE)) + return TRUE; + const bool giuridica = ((BA4200_application&)main_app()).ana_giu(); const TString16 val(f.get()); @@ -202,14 +206,24 @@ bool clear_cap(TMask_field& f, KEY key) // Handler del comunde di residenza e residenza fiscale bool gest_uff_imp(TMask_field& f, KEY key) { - if (f.mask().query_mode() || !f.to_check(key, TRUE)) + if (f.mask().query_mode()) return TRUE; - TString cod_com; TMask& msk = f.mask() ; const short dlg = f.dlg(); const bool giuridica = ((BA4200_application&)main_app()).ana_giu(); + if (giuridica && dlg == FLD_AG2_COMRES) + clear_cap(f,key); + + if (!giuridica && dlg == FLD_AF1_COMRES) + clear_cap(f,key); + + if (!f.to_check(key, TRUE)) + return TRUE; + + TString cod_com; + if ( giuridica ) { cod_com = msk.get(FLD_AG1_COMRF); diff --git a/ba/ba4400.cpp b/ba/ba4400.cpp index 0925ce72b..b103d4807 100755 --- a/ba/ba4400.cpp +++ b/ba/ba4400.cpp @@ -6,45 +6,65 @@ class BA4400_application : public TRelation_application { - TMask* _msk; - TRelation* _rel; - TLocalisamfile* _anag; - TLocalisamfile* _ditte; + TMask* _msk; + TRelation* _rel; + TLocalisamfile* _anag; + TLocalisamfile* _ditte; - bool user_create() ; - bool user_destroy() ; - virtual TMask* get_mask(int mode) { return _msk;} - virtual bool changing_mask(int mode) { return FALSE;} - virtual TRelation* get_relation() const { return _rel;} + bool user_create() ; + bool user_destroy() ; + virtual TMask* get_mask(int mode) { return _msk;} + virtual bool changing_mask(int mode) { return FALSE;} + virtual TRelation* get_relation() const { return _rel;} public: BA4400_application() {} virtual ~BA4400_application() {} }; +HIDDEN bool clear_cap(TMask_field& f, KEY key) +{ + if (f.mask().query_mode()) + return TRUE; + TMask& msk = f.mask() ; + const short dlg = f.dlg(); + + if (dlg != FLD_UL1_COMULC && !f.to_check(key, TRUE)) + return TRUE; + + const TString16 val(f.get()); + const int capid = dlg == FLD_UL1_COMULC ? FLD_UL1_CAPULC : FLD_UL2_CAPTRIB; + + if (val.empty()) + msk.set(capid, ""); + return TRUE; +} + bool BA4400_application::user_create() { _msk = new TMask("ba4400a") ; - _rel = new TRelation(LF_UNLOC) ; - _anag = new TLocalisamfile(LF_ANAG) ; - _ditte = new TLocalisamfile(LF_NDITTE) ; - set_search_field(FLD_UL1_CODULC); - return TRUE; + _msk->set_handler(FLD_UL1_COMULC, clear_cap); + _msk->set_handler(FLD_UL2_COMTRIB, clear_cap); + _rel = new TRelation(LF_UNLOC) ; + _anag = new TLocalisamfile(LF_ANAG) ; + _ditte = new TLocalisamfile(LF_NDITTE) ; + set_search_field(FLD_UL1_CODULC); + return TRUE; } bool BA4400_application::user_destroy() { delete _msk; - delete _rel; - delete _anag; - delete _ditte; - return TRUE; + delete _rel; + delete _anag; + delete _ditte; + return TRUE; } int ba4400(int argc, char* argv[]) { - + BA4400_application a; a.run(argc, argv, "Anagrafica Unita' Locali"); return 0; diff --git a/ba/ba4500.cpp b/ba/ba4500.cpp index e3792af78..63948e702 100755 --- a/ba/ba4500.cpp +++ b/ba/ba4500.cpp @@ -87,10 +87,26 @@ bool TAttivita_application::gest_res(TMask_field& f, KEY key) return TRUE; } +HIDDEN bool clear_cap(TMask_field& f, KEY key) +{ + if (f.mask().query_mode() || !f.to_check(key, TRUE)) + return TRUE; + + TMask& msk = f.mask() ; + const short dlg = f.dlg(); + const TString16 val(f.get()); + + if (val.empty()) + msk.set(FLD_AT2_CAPCS, ""); + return TRUE; +} + + bool TAttivita_application::user_create() { _msk = new TMask("ba4500a") ; _msk->set_handler(FLD_AT2_CODANGRDS, gest_res); + _msk->set_handler(FLD_AT2_COMCS, clear_cap); _rel = new TRelation(LF_ATTIV) ; _anag = new TLocalisamfile(LF_ANAG) ; _ditte = new TLocalisamfile(LF_NDITTE) ; diff --git a/ba/ba4600a.uml b/ba/ba4600a.uml index 2c262977d..b733d9040 100755 --- a/ba/ba4600a.uml +++ b/ba/ba4600a.uml @@ -209,20 +209,16 @@ BEGIN NUM_EXPR {(#THIS_FIELD>=0) && (#THIS_FIELD<=100)} END -LIST LST_SC1_RICQUAL 18 +LIST LST_SC1_RICQUAL 28 BEGIN - PROMPT 1 13 "Richiesta qualifica " + PROMPT 1 13 "R.qualifica " FIELD LF_SOCI->RICQUAL HELP "Qualifica del socio" ITEM " |Nessuna" - ITEM "A|Amministratore(A)" - ITEM "B|Amministratore(B)" - ITEM "B1|Amministratore(B1)" - ITEM "B2|Amministratore(B2)" - ITEM "C|Organo di controllo" - ITEM "R|Revisore" - ITEM "S|Sindaco" - ITEM "SO|Soggetto operativo" + ITEM "A|A) Amministratore socio" + ITEM "B1|B1) Accomandante" + ITEM "B|B) Amministratore non socio" + ITEM "C|C) Altro organo" END NUMBER FLD_SC1_EMOLUMENTO 17