// 773400.cpp - gestione tabelle 770 #include #include #include #include #include #include #include "batbca7.h" // Lista modifiche // // 21.12.95 i codici quadro con 1015 sono C-E1 (= tolto E2) (nf) // la perc. r.a. non e' piu' obbligatoria (nf) // // 14.5.96 Modifiche per dichiarazione 96 (nf) // class Tab770_application : public Tab_application { private: TMask* _msk; TString _tabname; protected: bool IsCausali() const { return _tabname == "%CA7"; } void SetDefaultValueCausali(TMask& m); void init_mask(TMask& m); public: bool user_create(); virtual void init_modify_mode(TMask& m); virtual void init_insert_mode(TMask& m); virtual void init_query_mode(TMask& m); virtual bool firm_change_enabled() const; Tab770_application() {} virtual ~Tab770_application() {} }; HIDDEN inline Tab770_application& app() {return (Tab770_application&) main_app();} HIDDEN bool codqua_handler(TMask_field& f, KEY k) { if (f.to_check(k)) { TMask& m = f.mask(); const int trib = m.get_int(F_CODTRIB); if (trib == 1015) { const TString& quad = m.get(F_QUADRCE2); if (quad != "LA" && quad != "SF" && quad != "SG") return f.error_box("Con il codice tributo 1015 si possono indicare solo i quadri LA-SF-SG"); } } return TRUE; } HIDDEN bool codtrib_handler(TMask_field& f, KEY k) { if (k == K_TAB) { TMask& m = f.mask(); const int trib = atoi(f.get()); if (trib == 1015) { m.hide(F_QUADRAT); m.show(F_QUADRCE2); } else { m.hide(F_QUADRCE2); m.show(F_QUADRAT); } } return TRUE; } HIDDEN bool descr_handler(TMask_field& f, KEY k) { if (k == K_ENTER) { TMask& m = f.mask(); const TString descr = f.get(); if (descr == "") { f.error_box("La descrizione e' obbligatoria"); return FALSE; } } return TRUE; } void Tab770_application::SetDefaultValueCausali(TMask& m) { TString sPercAss(m.get(F_PERASS)); sPercAss.trim(); if (sPercAss.empty()) m.set(F_PERASS, "100.00"); // % ass. imponibile } void Tab770_application::init_mask(TMask& m) { if (IsCausali()) SetDefaultValueCausali(m); } void Tab770_application::init_query_mode(TMask& m) { init_mask(m); } void Tab770_application::init_insert_mode(TMask& m) { init_mask(m); } void Tab770_application::init_modify_mode(TMask& m) {} bool Tab770_application::user_create() { Tab_application::user_create(); _msk = get_mask(); _tabname = get_tabname(); if (IsCausali()) { _msk->set_handler(F_CODTRIB, codtrib_handler); _msk->set_handler(F_QUADRCE2, codqua_handler); _msk->set_handler(F_QUADRAT, codqua_handler); } return TRUE; } bool Tab770_application::firm_change_enabled() const { return FALSE; } m73400(int argc, char* argv[]) { Tab770_application a; a.run(argc,argv, "Tabelle"); return 0; }