From 9eacf264e0e597ef3bbef01b6fab9037b3f18e49 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 7 Mar 2014 13:59:08 +0000 Subject: [PATCH] Reso possibile utilizzo programmi di "ca" anche ai possessori di "ci" git-svn-id: svn://10.65.10.50/branches/R_10_00@22916 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca0100.cpp | 2 +- ca/ca0300.cpp | 7 ++++--- ca/ca0400.cpp | 2 +- ca/ca0600.cpp | 7 ------- ca/ca0700.cpp | 2 -- ca/ca0800.cpp | 2 +- ca/ca2100.cpp | 4 ++-- ca/calib01.cpp | 53 ++++++++++++++++++++++++++++++++++++++------------ ca/calib01.h | 1 + ca/camenu.men | 17 ++++++++-------- 10 files changed, 59 insertions(+), 38 deletions(-) diff --git a/ca/ca0100.cpp b/ca/ca0100.cpp index 90324b161..535c2dfda 100755 --- a/ca/ca0100.cpp +++ b/ca/ca0100.cpp @@ -100,7 +100,7 @@ protected: // TRelation_application virtual void init_modify_mode(TMask& m); virtual void init_query_mode(TMask& m); virtual void init_query_insert_mode(TMask& m); - + virtual const char* extra_modules() const { return "ci|cm"; } virtual TMask * set_mask(TMask * _m=NULL); public: diff --git a/ca/ca0300.cpp b/ca/ca0300.cpp index 1baef535b..8a0625c92 100755 --- a/ca/ca0300.cpp +++ b/ca/ca0300.cpp @@ -78,8 +78,9 @@ protected: public: virtual bool preprocess_config (TMask& mask, TConfig& config); virtual bool postprocess_config (TMask& mask, TConfig& config); - virtual bool user_create( ); - virtual bool user_destroy( ); + virtual bool user_create(); + virtual bool user_destroy(); + virtual const char* extra_modules() const { return "ci"; } void config_loader(TSheet_field& sf, TConfig& config, TString4 tipo); void config_setter(TSheet_field& sf, TConfig& config, TString4 tipo); @@ -180,6 +181,6 @@ bool TConf_Analitica::user_destroy( ) int ca0300(int argc, char* argv[]) { TConf_Analitica app; - app.run(argc, argv, TR("Parametri Contabilita' Analitica")); + app.run(argc, argv, TR("Parametri Contabilità Analitica")); return 0; } diff --git a/ca/ca0400.cpp b/ca/ca0400.cpp index 76ba0d532..10765c186 100755 --- a/ca/ca0400.cpp +++ b/ca/ca0400.cpp @@ -98,7 +98,7 @@ class TAnalisi_app : public TAnal_app bool _riclassificato; protected: - virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM + virtual const char * extra_modules() const {return "ci|cm";} //funziona anche con autorizzazione CM virtual TSimple_anal_msk* create_mask() const { return new TPiano_conti_anal_msk; } diff --git a/ca/ca0600.cpp b/ca/ca0600.cpp index f70c223ba..dd2f61f8a 100755 --- a/ca/ca0600.cpp +++ b/ca/ca0600.cpp @@ -68,9 +68,6 @@ protected: virtual void ini2mask(TConfig& ini, TMask&m, bool query); virtual void mask2ini(const TMask& m, TConfig& ini); - - virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM - virtual bool filtered() const; virtual void init_modify_mode(TMask& mask); @@ -78,10 +75,6 @@ protected: virtual bool protected_record(TRectype& record); virtual TSimple_anal_msk* create_mask() const { return new TCms_anal_msk; } virtual bool user_create(); - -public: - - TCms_app() {} }; void TCms_app::fin2row(const TMask& m) diff --git a/ca/ca0700.cpp b/ca/ca0700.cpp index 0f2dc1700..1803fe781 100755 --- a/ca/ca0700.cpp +++ b/ca/ca0700.cpp @@ -68,8 +68,6 @@ class TFsc_app : public TAnal_app bool _has_filter; protected: - virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM - virtual bool filtered() const; virtual bool protected_record(TRectype& record); virtual TSimple_anal_msk* create_mask() const { return new TFsc_anal_msk; } diff --git a/ca/ca0800.cpp b/ca/ca0800.cpp index d30107998..8ee38bbd4 100755 --- a/ca/ca0800.cpp +++ b/ca/ca0800.cpp @@ -334,7 +334,7 @@ class TRiparti_app : public TRelation_application void read_rows(); protected: - virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM + virtual const char* extra_modules() const {return "ci|cm";} //funziona anche con autorizzazione CM virtual bool user_create(); virtual bool user_destroy(); diff --git a/ca/ca2100.cpp b/ca/ca2100.cpp index d9140e573..82d5d68f3 100755 --- a/ca/ca2100.cpp +++ b/ca/ca2100.cpp @@ -79,7 +79,7 @@ class TMovanal_app : public TRelation_application TMovanal_msk* _msk; protected: - virtual const char* extra_modules() const { return "cm"; } //deve funzionare anche per le commesse + virtual const char* extra_modules() const { return "ci|cm"; } //deve funzionare anche per le commesse e l'industriale virtual bool user_create(); virtual bool user_destroy(); @@ -1118,7 +1118,7 @@ bool TMovanal_app::link_ci(const TMask& m) { const TRectype& mov = _rel->curr(); const TRectype& caus = cache().get(LF_CAUSALI, mov.get(MOVANA_CODCAUS)); - done = caus.get_bool(CAU_MOVCGIND); + done = caus.exist(CAU_MOVCGIND) && caus.get_bool(CAU_MOVCGIND); if (done) { TFilename n; n.tempdir(); n.add("mov_caci.ini"); diff --git a/ca/calib01.cpp b/ca/calib01.cpp index 351ea7f1f..0ba1e4e28 100755 --- a/ca/calib01.cpp +++ b/ca/calib01.cpp @@ -32,26 +32,35 @@ class TConfig_anal : public TConfig { - bool _has_ca; - bool _has_cm; + int _level; public: virtual const TString& get(const char* var, const char* section = NULL, int index = -1, const char* def = ""); TConfig_anal(); }; -TConfig_anal::TConfig_anal() : TConfig(CONFIG_DITTA, "ca"), _has_ca(dongle().active(CAAUT)), _has_cm(dongle().active(CMAUT)) +TConfig_anal::TConfig_anal() : TConfig(CONFIG_DITTA, "ca"), _level(0) { + const TDongle& a = dongle(); + _level = a.active(CAAUT) ? 4 : (a.active(CMAUT) ? 1 : 0); + if (a.active(CIAUT)) _level |= 2; + + // Controllo se è veramente configurato il primo livello a CMS o CDC + if (_level > 1 && TConfig::get("Level", NULL, 1).blank()) + _level = 0; } const TString& TConfig_anal::get(const char* varname, const char* section, int index, const char* def) { - if (_has_ca) + const TFixed_string var(varname); + if (var == "Authorizations") + return get_tmp_string() << _level; + + if (_level & 0x6) // CA o CI return TConfig::get(varname, section, index, def); - if (_has_cm) + if (_level & 0x1) // CM { - const TFixed_string var(varname); TString& tmp = get_tmp_string(); //se il valore della variabile sul .ini e' vuoto controlla se e' possibile assegnarlo di default if (var == "AttFasi") @@ -674,7 +683,6 @@ void ca_create_browse1(TEdit_field& kfld, int level, int logic, short key_id, sh out << "IN " << field << ' ' << (key_id+i); if (add_select && field.name() == FASI_CODCMSFAS) out << " SE"; - out << '\n'; out << "DI \"" << prompt; if (length > prompt.len()) @@ -991,7 +999,7 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id, const TMultilevel_code_info& fasinfo = ca_multilevel_code_info(LF_FASI); TConfig& ini = ca_config(); short dlg = first_id; - + first_cdc = first_cms = first_fase = first_conto = 0; for (int i = 0; i < 2; i++) { @@ -1019,10 +1027,11 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id, } else if (level == "CMS" && cms_fld) // Crea commessa { - if (fasinfo.parent() == LF_COMMESSE) + const int h = ca_multilevel_code_info(LF_COMMESSE).levels(); + int sh = 0; + if (fasinfo.parent() == LF_COMMESSE && fase_fld) { - int h = ca_multilevel_code_info(LF_COMMESSE).levels(); - const int sh = ca_create_fields_compact(m, 0, LF_FASI, x, y, dlg, dlg + 50); + sh = ca_create_fields_compact(m, 0, LF_FASI, x, y, dlg, dlg + 50); y += 2; first_cms = dlg; first_fase = first_cms + h; @@ -1031,11 +1040,31 @@ int ca_create_fields_ext(TMask& m, int page, int x, int y, short first_id, } else { - const int sh = ca_create_fields_compact(m, 0, LF_COMMESSE, x, y++, dlg, dlg + 50); + sh = ca_create_fields_compact(m, 0, LF_COMMESSE, x, y++, dlg, dlg + 50); first_cms = dlg; dlg += sh; numero_campi += sh; } + + for (int i = 0; i < sh; i++) + { + TEdit_field& ef = m.efield(first_cms+i); + const TFieldref& fr = *ef.field(); + TString80 str; + if (i < h) + str.format("%s[%d,%d]", cms_fld, fr.from()+1, fr.to()); + else + { + if (fase_fld) + { + if (sh == h+1) + str = fase_fld; // Fase monolivello: inutile range + else + str.format("%s[%d,%d]", fase_fld, fr.from()+1, fr.to()); + } + } + ef.set_field(str); + } } } diff --git a/ca/calib01.h b/ca/calib01.h index 679b52ea3..6e9a596e1 100755 --- a/ca/calib01.h +++ b/ca/calib01.h @@ -163,6 +163,7 @@ protected: protected: virtual TSimple_anal_msk* create_mask() const pure; virtual TRelation* create_relation() const; + virtual const char* extra_modules() const { return "ci|cm"; } }; diff --git a/ca/camenu.men b/ca/camenu.men index 00d100e56..724096ce8 100755 --- a/ca/camenu.men +++ b/ca/camenu.men @@ -1,7 +1,7 @@ [CAMENU_001] Caption = "Contabilità analitica" Picture = -Module = 22 +Module = ca,ci,cm Flags = "F" Item_01 = "Configurazione", [CAMENU_010] Item_02 = "Archivi e Tabelle di base", [CAMENU_020] @@ -10,11 +10,10 @@ Item_04 = "Stampe", [CAMENU_040] Item_05 = "Servizi", [CAMENU_050] Item_06 = "Moduli aggiuntivi", - [CAMENU_010] Caption = "Configurazione" Picture = -Module = 22 +Module = ca,ci Flags = "" Item_01 = "Parametri Contabilità Analitica", "ca0 -2", "F" Item_02 = "Tabelle di ripartizione", "ca0 -7", "F" @@ -22,7 +21,7 @@ Item_02 = "Tabelle di ripartizione", "ca0 -7", "F" [CAMENU_020] Caption = "Archivi e Tabelle di base" Picture = -Module = 22 +Module = ca,ci,cm Flags = "" Item_01 = "Archivi di base", [CAMENU_021] Item_02 = "Stampa archivi di base", [CAMENU_022] @@ -30,7 +29,7 @@ Item_02 = "Stampa archivi di base", [CAMENU_022] [CAMENU_021] Caption = "Archivi di base" Picture = -Module = 22 +Module = ca,ci,cm Flags = "" Item_01 = "Piano dei conti", "ca0 -3", "SF" Item_02 = "Centri di costo", "ca0 -4", "SF" @@ -43,7 +42,7 @@ Item_07 = "Tipi Lavoro", "ca0 -0 TPL", "F" [CAMENU_022] Caption = "Stampa archivi di base" Picture = -Module = 22 +Module = ca Flags = "" Item_01 = "Piano dei conti", "ca1 -3", "F" Item_02 = "Riclassificazione conti A/C", "ca3 -4 ca9400k1", "F" @@ -56,7 +55,7 @@ Item_07 = "Fasi", "ca1 -6", "F" [CAMENU_030] Caption = "Movimenti" Picture = -Module = 22 +Module = ca Flags = "" Item_01 = "Gestione movimenti", "ca2 -0", "F" Item_02 = "Ripartizione movimenti", "ca2 -1", "F" @@ -64,7 +63,7 @@ Item_02 = "Ripartizione movimenti", "ca2 -1", "F" [CAMENU_040] Caption = "Stampe" Picture = -Module = 22 +Module = ca Flags = "" Item_01 = "Movimenti", "ca3 -0", "F" Item_02 = "Mastrini", "ca3 -1", "F" @@ -79,7 +78,7 @@ Item_09 = "Bilancio per centro di costo", "ca1 -0 ca1100a", "F" [CAMENU_050] Caption = "Servizi" Picture = -Module = 22 +Module = ca Flags = "" Item_01 = "Trasferimento dati da Contabilità Generale", "cacnv -0", "F" Item_02 = "Ricalcolo saldi", "ca2 -2", "F"