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:
bool _lev_enabled;
void load(bool e, const char *tabcod,const char *tabgrp);
void add_metachar(int lev);
TArray _metachars;
public:
// Ritorna il numero di livelli abilitati
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
const bool enabled() const ;
// Ritorna se il livello specificato è abilitato
@ -247,7 +250,7 @@ public:
const char * opz_chars();
const char * mand_chars();*/
TCodice_livelli(const char *tabcod,const char *tabgrp); // costruttore
TCodice_livelli() {}; // costruttore
virtual ~TCodice_livelli() {}; // distruttore
};
@ -295,7 +298,7 @@ public:
int sgn(TTipo_saldomag fieldname) ;
bool update_qta() {return !get_bool("B1");}
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();
TCausale_magazzino(const char * codice);
virtual ~TCausale_magazzino() {}

View File

@ -578,15 +578,17 @@ TMetachar::~TMetachar ()
// **************************
// 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);
int e;
_lev_enabled = enabled;
_last_level=0;
e=_tabformato.first();
for (int i=0; i< MANY_MAG_LEV; i++) {
_enabled[i]=(e==NOERR);
_enabled[i]=(e==NOERR) && _lev_enabled;
if (_enabled[i]) {
_name[i]=_tabformato.get("S0");
_picture[i]=_tabformato.get("S1");
@ -602,8 +604,11 @@ TCodice_livelli:: TCodice_livelli(const char *tabname,const char *tabgrp)
_gruppi = new TDecoder(tabgrp);
}
const char *TCodice_livelli::code_format(int levnum) const
{
CHECK(enabled(), "iu chent get the code format if levels are disabled");
if (levnum<0) {
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
{
CHECK(enabled(), "iu chent check wether the format fits if levels are disabled");
if (levnum<0) {
levnum=max(last_level(),1);
}
@ -635,15 +641,15 @@ const bool TCodice_livelli::enabled() const
const bool TCodice_livelli::enabled(int levnum) const
{
if (levnum<=MANY_MAG_LEV && levnum>0)
return(_enabled[levnum-1] && _lev_enabled);
if (_lev_enabled && levnum<=MANY_MAG_LEV && levnum>0)
return(_enabled[levnum-1]);
else
return(FALSE) ;
}
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]);
else
return(0) ;
@ -652,7 +658,7 @@ const int TCodice_livelli::code_lenght(int levnum) const
const int TCodice_livelli::packed_lenght(int levnum) const
{
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];
return start;
}
@ -660,18 +666,18 @@ const int TCodice_livelli::packed_lenght(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]);
else
return("");
else
return(_name[0]); // empty
}
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]);
else
return("");
else
return(_picture[0]); // empty
}
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
{
int start=0;
for (int i=1; i<levnum; i++)
for (int i=1; _lev_enabled && i<levnum; i++)
start+= _code_lenght[i-1];
if (start>=pc.len())
return("");
@ -698,7 +704,7 @@ TString TCodice_livelli::build_tabcode(const TString & pc, const int levnum) con
TString valore;
valore << levnum;
valore << unpack_grpcode(pc,levnum);
if (valore.len()>1)
if (_lev_enabled && valore.len()>1)
return valore;
else
return "";
@ -724,11 +730,10 @@ void TCodice_livelli::set_sheetcolumn(TSheet_field &fld_righe,int field, int lev
}
TCodart_livelli ::TCodart_livelli() :
TCodice_livelli("FCA","GCA")
TCodart_livelli ::TCodart_livelli()
{
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
TString80 format("");
TTable _tabfca("FCA");
@ -742,11 +747,10 @@ TCodart_livelli ::~TCodart_livelli()
{
}
TCodgiac_livelli ::TCodgiac_livelli() :
TCodice_livelli("FCG","GCG")
TCodgiac_livelli ::TCodgiac_livelli()
{
TConfig mgconfig(CONFIG_DITTA, "mg");
_lev_enabled=mgconfig.get_bool("GESLIVGIAC");
load(mgconfig.get_bool("GESLIVGIAC"),"FCG","GCG");
}