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 "mglib02.h"
|
||||||
|
#include <mask.h>
|
||||||
#include "../cg/cglib.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);
|
const int index = log2ind(logicnum);
|
||||||
TRectype & rec = get_body_record(logicnum);
|
TRectype & rec = get_body_record(logicnum);
|
||||||
@ -9,7 +18,7 @@ void TMultiple_rectype::load_rows_file(int logicnum)
|
|||||||
set_body_key(rec);
|
set_body_key(rec);
|
||||||
TRecord_array * r = new TRecord_array(logicnum, (TString &) _numfields[index]);
|
TRecord_array * r = new TRecord_array(logicnum, (TString &) _numfields[index]);
|
||||||
_files.add( r, index);
|
_files.add( r, index);
|
||||||
}
|
}*/
|
||||||
|
|
||||||
int TMultiple_rectype::find(int logicnum, const char * fieldname, const char * s, int from, bool reverse) const
|
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)
|
if (len == 0)
|
||||||
return from - 1;
|
return from - 1;
|
||||||
for (int i = recarray.pred_row(from); i > 0; i = recarray.pred_row(i))
|
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;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -35,7 +44,7 @@ int TMultiple_rectype::find(int logicnum, const char * fieldname, const char * s
|
|||||||
if (len == 0)
|
if (len == 0)
|
||||||
return from + 1;
|
return from + 1;
|
||||||
for (int i = recarray.succ_row(from); i <= last; i = recarray.succ_row(i))
|
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;
|
return i;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -113,6 +122,16 @@ int TMultiple_rectype::log2ind(int logicnum) const
|
|||||||
return 0;
|
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
|
TRecord_array & TMultiple_rectype::body(int logicnum) const
|
||||||
{
|
{
|
||||||
const int index = log2ind(logicnum);
|
const int index = log2ind(logicnum);
|
||||||
@ -313,6 +332,52 @@ const TString & TArticolo::descrizione(const char* lingua) const
|
|||||||
return get(ANAMAG_DESCR);
|
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)
|
TArticolo::TArticolo(const char* codice)
|
||||||
: TMultiple_rectype(LF_ANAMAG)
|
: 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); }
|
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); }
|
int read(TBaseisamfile & f, word op = _isequal, word lockop = _nolock) { return read(f.curr(), op, lockop); }
|
||||||
|
|
||||||
virtual int write(TBaseisamfile& f) const;
|
virtual int write(TBaseisamfile& f) const
|
||||||
virtual int rewrite(TBaseisamfile& f) const;
|
{ return write_rewrite(f);}
|
||||||
|
virtual int rewrite(TBaseisamfile& f) const
|
||||||
|
{ return write_rewrite(f,TRUE);}
|
||||||
virtual int remove(TBaseisamfile& f) const;
|
virtual int remove(TBaseisamfile& f) const;
|
||||||
|
|
||||||
int write() const { TBaseisamfile f(num()); return write(f);}
|
int write() const { TBaseisamfile f(num()); return write(f);}
|
||||||
@ -136,6 +138,8 @@ public:
|
|||||||
virtual ~TMultiple_rectype() {}
|
virtual ~TMultiple_rectype() {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
char * TNome_valorizz[];
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
valorizz_ultcos , valorizz_mediacos , valorizz_przlist ,
|
valorizz_ultcos , valorizz_mediacos , valorizz_przlist ,
|
||||||
valorizz_coststd , valorizz_costmedio ,
|
valorizz_coststd , valorizz_costmedio ,
|
||||||
@ -144,14 +148,6 @@ typedef enum {
|
|||||||
valorizz_FIFOr , valorizz_LIFOr
|
valorizz_FIFOr , valorizz_LIFOr
|
||||||
} TTipo_valorizz;
|
} 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
|
class TArticolo : public TMultiple_rectype
|
||||||
{
|
{
|
||||||
TRecfield * _codice;
|
TRecfield * _codice;
|
||||||
@ -167,9 +163,13 @@ public:
|
|||||||
|
|
||||||
TObject* dup() const { return new TArticolo(codice()); }
|
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;
|
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_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_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); }
|
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