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
This commit is contained in:
guy 2014-03-07 13:59:08 +00:00
parent 0a00dffb16
commit 9eacf264e0
10 changed files with 59 additions and 38 deletions

View File

@ -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:

View File

@ -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;
}

View File

@ -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; }

View File

@ -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)

View File

@ -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; }

View File

@ -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();

View File

@ -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");

View File

@ -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);
}
}
}

View File

@ -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"; }
};

View File

@ -1,7 +1,7 @@
[CAMENU_001]
Caption = "Contabilità analitica"
Picture = <ca01>
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", <caaddon.men>
[CAMENU_010]
Caption = "Configurazione"
Picture = <ca01>
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 = <ba02>
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 = <ba02>
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 = <ba03>
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 = <ca01>
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 = <ba03>
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 = <ba04>
Module = 22
Module = ca
Flags = ""
Item_01 = "Trasferimento dati da Contabilità Generale", "cacnv -0", "F"
Item_02 = "Ricalcolo saldi", "ca2 -2", "F"