Metodo load e costruttori senza parametri su TCOdice_livelli

Flag di aggiornamento ultcosto in causali magazzino


git-svn-id: svn://10.65.10.50/trunk@5023 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-08-01 14:52:36 +00:00
parent 06ea15ff0c
commit 9f1d09a45c
2 changed files with 30 additions and 23 deletions

View File

@ -209,12 +209,15 @@ class TCodice_livelli : public TObject
protected: protected:
bool _lev_enabled; bool _lev_enabled;
void load(bool e, const char *tabcod,const char *tabgrp);
void add_metachar(int lev); void add_metachar(int lev);
TArray _metachars; TArray _metachars;
public: public:
// Ritorna il numero di livelli abilitati // Ritorna il numero di livelli abilitati
int last_level() const {return enabled() ? _last_level: 0;}; int last_level() const {return enabled() ? _last_level: 0;};
// Abilita la gestione dei livelli
void enable(bool on=TRUE) ;
// Ritorna se la gestione dei livelli è abilitata // Ritorna se la gestione dei livelli è abilitata
const bool enabled() const ; const bool enabled() const ;
// Ritorna se il livello specificato è abilitato // Ritorna se il livello specificato è abilitato
@ -247,7 +250,7 @@ public:
const char * opz_chars(); const char * opz_chars();
const char * mand_chars();*/ const char * mand_chars();*/
TCodice_livelli(const char *tabcod,const char *tabgrp); // costruttore TCodice_livelli() {}; // costruttore
virtual ~TCodice_livelli() {}; // distruttore virtual ~TCodice_livelli() {}; // distruttore
}; };
@ -295,7 +298,7 @@ public:
int sgn(TTipo_saldomag fieldname) ; int sgn(TTipo_saldomag fieldname) ;
bool update_qta() {return !get_bool("B1");} bool update_qta() {return !get_bool("B1");}
bool update_val() {return !get_bool("B0");} bool update_val() {return !get_bool("B0");}
bool update_ultcos() {return TRUE; /*get_bool("B2");*/} bool update_ultcos() {return get_bool("B2");}
bool is_fiscale(); bool is_fiscale();
TCausale_magazzino(const char * codice); TCausale_magazzino(const char * codice);
virtual ~TCausale_magazzino() {} virtual ~TCausale_magazzino() {}

View File

@ -578,15 +578,17 @@ TMetachar::~TMetachar ()
// ************************** // **************************
// classe codice a livelli // classe codice a livelli
TCodice_livelli:: TCodice_livelli(const char *tabname,const char *tabgrp)
{ void TCodice_livelli::load(bool enabled, const char *tabname,const char *tabgrp)
{
TTable _tabformato(tabname); TTable _tabformato(tabname);
int e; int e;
_lev_enabled = enabled;
_last_level=0; _last_level=0;
e=_tabformato.first(); e=_tabformato.first();
for (int i=0; i< MANY_MAG_LEV; i++) { for (int i=0; i< MANY_MAG_LEV; i++) {
_enabled[i]=(e==NOERR); _enabled[i]=(e==NOERR) && _lev_enabled;
if (_enabled[i]) { if (_enabled[i]) {
_name[i]=_tabformato.get("S0"); _name[i]=_tabformato.get("S0");
_picture[i]=_tabformato.get("S1"); _picture[i]=_tabformato.get("S1");
@ -602,8 +604,11 @@ TCodice_livelli:: TCodice_livelli(const char *tabname,const char *tabgrp)
_gruppi = new TDecoder(tabgrp); _gruppi = new TDecoder(tabgrp);
} }
const char *TCodice_livelli::code_format(int levnum) const const char *TCodice_livelli::code_format(int levnum) const
{ {
CHECK(enabled(), "iu chent get the code format if levels are disabled");
if (levnum<0) { if (levnum<0) {
levnum=max(last_level(),1); levnum=max(last_level(),1);
} }
@ -614,6 +619,7 @@ const char *TCodice_livelli::code_format(int levnum) const
bool TCodice_livelli::fit_to_format(const char *codepart,int levnum) const bool TCodice_livelli::fit_to_format(const char *codepart,int levnum) const
{ {
CHECK(enabled(), "iu chent check wether the format fits if levels are disabled");
if (levnum<0) { if (levnum<0) {
levnum=max(last_level(),1); levnum=max(last_level(),1);
} }
@ -635,15 +641,15 @@ const bool TCodice_livelli::enabled() const
const bool TCodice_livelli::enabled(int levnum) const const bool TCodice_livelli::enabled(int levnum) const
{ {
if (levnum<=MANY_MAG_LEV && levnum>0) if (_lev_enabled && levnum<=MANY_MAG_LEV && levnum>0)
return(_enabled[levnum-1] && _lev_enabled); return(_enabled[levnum-1]);
else else
return(FALSE) ; return(FALSE) ;
} }
const int TCodice_livelli::code_lenght(int levnum) const const int TCodice_livelli::code_lenght(int levnum) const
{ {
if (levnum<=MANY_MAG_LEV && levnum>0) if (_lev_enabled && levnum<=MANY_MAG_LEV && levnum>0)
return(_code_lenght[levnum-1]); return(_code_lenght[levnum-1]);
else else
return(0) ; return(0) ;
@ -652,7 +658,7 @@ const int TCodice_livelli::code_lenght(int levnum) const
const int TCodice_livelli::packed_lenght(int levnum) const const int TCodice_livelli::packed_lenght(int levnum) const
{ {
int start=0; int start=0;
for (int i=1; i<=levnum && levnum<=MANY_MAG_LEV; i++) for (int i=1; _lev_enabled && i<=levnum && levnum<=MANY_MAG_LEV; i++)
start+= _code_lenght[i-1]; start+= _code_lenght[i-1];
return start; return start;
} }
@ -660,18 +666,18 @@ const int TCodice_livelli::packed_lenght(int levnum) const
const TString & TCodice_livelli::name(int levnum) const const TString & TCodice_livelli::name(int levnum) const
{ {
if (levnum<=MANY_MAG_LEV && levnum>0) if (levnum<=MANY_MAG_LEV && levnum>0)
return(_name[levnum-1]); return(_name[levnum-1]);
else else
return(""); return(_name[0]); // empty
} }
const TString & TCodice_livelli::picture(int levnum) const const TString & TCodice_livelli::picture(int levnum) const
{ {
if (levnum<=MANY_MAG_LEV && levnum>0) if (levnum<=MANY_MAG_LEV && levnum>0)
return(_picture[levnum-1]); return(_picture[levnum-1]);
else else
return(""); return(_picture[0]); // empty
} }
void TCodice_livelli::pack_grpcode(TString & pc, const TString &codlev, const int levnum) void TCodice_livelli::pack_grpcode(TString & pc, const TString &codlev, const int levnum)
@ -682,7 +688,7 @@ void TCodice_livelli::pack_grpcode(TString & pc, const TString &codlev, const in
TString TCodice_livelli::unpack_grpcode(const TString & pc, const int levnum) const TString TCodice_livelli::unpack_grpcode(const TString & pc, const int levnum) const
{ {
int start=0; int start=0;
for (int i=1; i<levnum; i++) for (int i=1; _lev_enabled && i<levnum; i++)
start+= _code_lenght[i-1]; start+= _code_lenght[i-1];
if (start>=pc.len()) if (start>=pc.len())
return(""); return("");
@ -698,7 +704,7 @@ TString TCodice_livelli::build_tabcode(const TString & pc, const int levnum) con
TString valore; TString valore;
valore << levnum; valore << levnum;
valore << unpack_grpcode(pc,levnum); valore << unpack_grpcode(pc,levnum);
if (valore.len()>1) if (_lev_enabled && valore.len()>1)
return valore; return valore;
else else
return ""; return "";
@ -724,11 +730,10 @@ void TCodice_livelli::set_sheetcolumn(TSheet_field &fld_righe,int field, int lev
} }
TCodart_livelli ::TCodart_livelli() : TCodart_livelli ::TCodart_livelli()
TCodice_livelli("FCA","GCA")
{ {
TConfig mgconfig(CONFIG_DITTA, "mg"); TConfig mgconfig(CONFIG_DITTA, "mg");
_lev_enabled=mgconfig.get_bool("GESLIVART"); load(mgconfig.get_bool("GESLIVART"), "FCA","GCA");
// imposta il riconoscimento dei caratteri del formato dell'ultima parte dell'articolo // imposta il riconoscimento dei caratteri del formato dell'ultima parte dell'articolo
TString80 format(""); TString80 format("");
TTable _tabfca("FCA"); TTable _tabfca("FCA");
@ -742,11 +747,10 @@ TCodart_livelli ::~TCodart_livelli()
{ {
} }
TCodgiac_livelli ::TCodgiac_livelli() : TCodgiac_livelli ::TCodgiac_livelli()
TCodice_livelli("FCG","GCG")
{ {
TConfig mgconfig(CONFIG_DITTA, "mg"); TConfig mgconfig(CONFIG_DITTA, "mg");
_lev_enabled=mgconfig.get_bool("GESLIVGIAC"); load(mgconfig.get_bool("GESLIVGIAC"),"FCG","GCG");
} }