Primo debug degli oggetti articolo e Multiple_record
git-svn-id: svn://10.65.10.50/trunk@4523 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
60e67cef72
commit
b511a986bf
@ -1,7 +1,16 @@
|
||||
#include "mglib02.h"
|
||||
#include <mask.h>
|
||||
#include "../cg/cglib.h"
|
||||
|
||||
void TMultiple_rectype::load_rows_file(int logicnum)
|
||||
char * TNome_valorizz[]= {
|
||||
"Ultimo costo", "Media ultimi costi", "Prezzo di listino",
|
||||
"Costo standard", "Costo medio" ,
|
||||
"FIFO annuale", "LIFO annuale",
|
||||
"FIFO", "LIFO",
|
||||
"FIFO Ragionieristico", "LIFO Ragionieristico"
|
||||
} ;
|
||||
|
||||
/*bool TArticolo::load_um()
|
||||
{
|
||||
const int index = log2ind(logicnum);
|
||||
TRectype & rec = get_body_record(logicnum);
|
||||
@ -9,7 +18,7 @@ void TMultiple_rectype::load_rows_file(int logicnum)
|
||||
set_body_key(rec);
|
||||
TRecord_array * r = new TRecord_array(logicnum, (TString &) _numfields[index]);
|
||||
_files.add( r, index);
|
||||
}
|
||||
}*/
|
||||
|
||||
int TMultiple_rectype::find(int logicnum, const char * fieldname, const char * s, int from, bool reverse) const
|
||||
{
|
||||
@ -24,7 +33,7 @@ int TMultiple_rectype::find(int logicnum, const char * fieldname, const char * s
|
||||
if (len == 0)
|
||||
return from - 1;
|
||||
for (int i = recarray.pred_row(from); i > 0; i = recarray.pred_row(i))
|
||||
if (recarray[i].get(fieldname) == s)
|
||||
if (((TRectype &)recarray[i]).get(fieldname) == s)
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@ -35,7 +44,7 @@ int TMultiple_rectype::find(int logicnum, const char * fieldname, const char * s
|
||||
if (len == 0)
|
||||
return from + 1;
|
||||
for (int i = recarray.succ_row(from); i <= last; i = recarray.succ_row(i))
|
||||
if (recarray[i].get(fieldname) == s)
|
||||
if (((TRectype &)recarray[i]).get(fieldname) == s)
|
||||
return i;
|
||||
}
|
||||
}
|
||||
@ -113,6 +122,16 @@ int TMultiple_rectype::log2ind(int logicnum) const
|
||||
return 0;
|
||||
}
|
||||
|
||||
void TMultiple_rectype::load_rows_file(int logicnum)
|
||||
{
|
||||
const int index = log2ind(logicnum);
|
||||
TRectype & rec = get_body_record(logicnum);
|
||||
|
||||
set_body_key(rec);
|
||||
TRecord_array * r = new TRecord_array(logicnum, (TString &) _numfields[index]);
|
||||
_files.add( r, index);
|
||||
}
|
||||
|
||||
TRecord_array & TMultiple_rectype::body(int logicnum) const
|
||||
{
|
||||
const int index = log2ind(logicnum);
|
||||
@ -313,6 +332,52 @@ const TString & TArticolo::descrizione(const char* lingua) const
|
||||
return get(ANAMAG_DESCR);
|
||||
}
|
||||
|
||||
|
||||
void TArticolo::update_ultcosti(real costo,TDate data)
|
||||
{
|
||||
TDate data1(get_date(ANAMAG_DULTCOS1));
|
||||
if (data>= data1)
|
||||
{
|
||||
real costo1(get_real(ANAMAG_ULTCOS1));
|
||||
put(ANAMAG_DULTCOS1,data);
|
||||
put(ANAMAG_ULTCOS1,costo);
|
||||
put(ANAMAG_DULTCOS2,data1);
|
||||
put(ANAMAG_ULTCOS2,costo1);
|
||||
} else {
|
||||
if (data>= get_date(ANAMAG_DULTCOS2))
|
||||
put(ANAMAG_DULTCOS2,data);
|
||||
put(ANAMAG_ULTCOS2,costo);
|
||||
}
|
||||
}
|
||||
|
||||
bool TArticolo::unlock()
|
||||
{
|
||||
bool rv;
|
||||
if (*(const char *)_codice)
|
||||
{
|
||||
TLocalisamfile anag(LF_ANAMAG);
|
||||
anag.set_curr(this);
|
||||
rv=(anag.read(_isequal,_unlock)==NOERR);
|
||||
return rv;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
bool TArticolo::lock_and_prompt()
|
||||
{
|
||||
TString mess;
|
||||
mess << "Il record di anagrafica dell'articolo ''"<< codice() << "'' risulta essere già in uso.\n Interrompo ?";
|
||||
TTimed_breakbox bbox((const char *)mess,10);
|
||||
do {
|
||||
TLocalisamfile anag(LF_ANAMAG);
|
||||
anag.set_curr(this);
|
||||
if (anag.read(_isequal,_testandlock)==NOERR)
|
||||
return TRUE;
|
||||
} while (bbox.run()!=K_ESC);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
TArticolo::TArticolo(const char* codice)
|
||||
: TMultiple_rectype(LF_ANAMAG)
|
||||
|
||||
|
22
mg/mglib02.h
22
mg/mglib02.h
@ -114,8 +114,10 @@ public:
|
||||
virtual int read(word op = _isequal, word lockop = _nolock) { return read(*this, op, lockop); }
|
||||
int read(TBaseisamfile & f, word op = _isequal, word lockop = _nolock) { return read(f.curr(), op, lockop); }
|
||||
|
||||
virtual int write(TBaseisamfile& f) const;
|
||||
virtual int rewrite(TBaseisamfile& f) const;
|
||||
virtual int write(TBaseisamfile& f) const
|
||||
{ return write_rewrite(f);}
|
||||
virtual int rewrite(TBaseisamfile& f) const
|
||||
{ return write_rewrite(f,TRUE);}
|
||||
virtual int remove(TBaseisamfile& f) const;
|
||||
|
||||
int write() const { TBaseisamfile f(num()); return write(f);}
|
||||
@ -136,6 +138,8 @@ public:
|
||||
virtual ~TMultiple_rectype() {}
|
||||
};
|
||||
|
||||
char * TNome_valorizz[];
|
||||
|
||||
typedef enum {
|
||||
valorizz_ultcos , valorizz_mediacos , valorizz_przlist ,
|
||||
valorizz_coststd , valorizz_costmedio ,
|
||||
@ -144,14 +148,6 @@ typedef enum {
|
||||
valorizz_FIFOr , valorizz_LIFOr
|
||||
} TTipo_valorizz;
|
||||
|
||||
char * TNome_valorizz[]= {
|
||||
"Ultimo costo", "Media ultimi costi", "Prezzo di listino",
|
||||
"Costo standard", "Costo medio" ,
|
||||
"FIFO annuale", "LIFO annuale",
|
||||
"FIFO", "LIFO",
|
||||
"FIFO Ragionieristico", "LIFO Ragionieristico"
|
||||
} ;
|
||||
|
||||
class TArticolo : public TMultiple_rectype
|
||||
{
|
||||
TRecfield * _codice;
|
||||
@ -167,9 +163,13 @@ public:
|
||||
|
||||
TObject* dup() const { return new TArticolo(codice()); }
|
||||
|
||||
const TString& codice() const { return (const char *) *_codice;}
|
||||
const TString codice() const { return (const char *) *_codice;}
|
||||
const TString& descrizione(const char * lingua = NULL) const;
|
||||
|
||||
bool unlock() ;
|
||||
bool lock_and_prompt() ;
|
||||
void update_ultcosti(real costo,TDate data) ;
|
||||
|
||||
int find_um(const char * um, int from = 0) const { return find(LF_UMART, UMART_UM, um, from); }
|
||||
int find_deslin(const char * deslin, int from = 0) const { return find(LF_DESLIN, DESLIN_CODLIN, deslin, from); }
|
||||
int find_codcorr(const char * codcorr, int from = 0) const { return find(LF_CODCORR, CODCORR_CODARTALT, codcorr, from); }
|
||||
|
Loading…
x
Reference in New Issue
Block a user