// 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); static bool TC_causD1_handler(TMask_field& f, KEY k); 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); Tab770_application() {} virtual ~Tab770_application() {} }; HIDDEN inline Tab770_application& app() {return (Tab770_application&) main_app();} bool Tab770_application::TC_causD1_handler(TMask_field& f, KEY k) { if (k == K_TAB) { TString16 value(f.get()); TMask& m = f.mask(); if (value == "F") m.reset(F_ASSRIT); else if (value == "A" || value == "B" || value == "C" || value == "D" || value == "E") m.set(F_ASSRIT, "X"); } return TRUE; } HIDDEN bool codqua_handler(TMask_field& f, KEY k) { if (k == K_ENTER && f.mask().is_running()) { TMask& m = f.mask(); const int trib = atoi(m.get(F_CODTRIB)); if (trib == 1015) { const int dlg_qua = F_QUADRCE2; TString16 quad(m.get(F_QUADRCE2)); quad.trim(); quad.upper(); if (quad != "C" && quad != "D" && quad != "E" && quad != "E1" && quad != "D1") return f.warning_box("Con il codice tributo 1015 si possono indicare solo i quadri C-D-D1-E-E1"); } } 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 sAssImpInps(m.get(TCF_ASSIMPINPS)); TString sPercInps(m.get(TCF_PERCINPS)); TString sPercAss(m.get(F_PERASS)); sAssImpInps.trim(); sPercInps.trim(); sPercAss.trim(); if (sAssImpInps.empty()) m.set(TCF_ASSIMPINPS, "95.00"); // % ass.imp.contr.INPS // m.set(TCF_COMMINPS, "66.67"); // quota competenza committente if (sPercInps.empty()) m.set(TCF_PERCINPS, "10.00"); // % contr. INPS 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); _msk->set_handler(TCF_CAUSD1, TC_causD1_handler); } return TRUE; } m73400(int argc, char* argv[]) { Tab770_application a; a.run(argc,argv, "Tabelle"); return 0; }