Enum per i tipi di valorizzazioni git-svn-id: svn://10.65.10.50/trunk@4430 c028cbd2-c16b-5b4b-a496-9718f37d4682
132 lines
4.6 KiB
C++
Executable File
132 lines
4.6 KiB
C++
Executable File
// *******************************
|
|
// LIBRERIA di magazzino per le valorizzazioni e le chiusure
|
|
// *******************************
|
|
#ifndef __MGLIB02_H
|
|
#define __MGLIB02_H
|
|
|
|
#ifndef __RELATION_H
|
|
#include <relation.h>
|
|
#endif
|
|
|
|
#ifndef __RECARRAY_H
|
|
#include <recarray.h>
|
|
#endif
|
|
|
|
#ifndef __ANAMAG_H
|
|
#include "anamag.h"
|
|
#endif
|
|
|
|
#ifndef __UMART_H
|
|
#include "umart.h"
|
|
#endif
|
|
|
|
#ifndef __CODCORR_H
|
|
#include "codcorr.h"
|
|
#endif
|
|
|
|
#ifndef __DESLIN_H
|
|
#include "deslin.h"
|
|
#endif
|
|
|
|
#ifndef __MAG_H
|
|
#include "mag.h"
|
|
#endif
|
|
|
|
#ifndef __STOMAG_H
|
|
#include "stomag.h"
|
|
#endif
|
|
|
|
typedef enum {
|
|
valorizz_ultcos , valorizz_mediacos , valorizz_przlist ,
|
|
valorizz_coststd , valorizz_costmedio ,
|
|
valorizz_FIFOa , valorizz_LIFOa ,
|
|
valorizz_FIFO , valorizz_LIFO
|
|
} TTipo_valorizz;
|
|
|
|
char * TNome_valorizz[]= {
|
|
"Ultimo costo", "Media ultimi costi", "Prezzo di listino",
|
|
"Costo standard", "Costo medio" ,
|
|
"FIFO annuale","LIFO annuale",
|
|
"FIFO","LIFO"
|
|
} ;
|
|
|
|
class TArticolo : public TRectype
|
|
{
|
|
TRecfield * _codice;
|
|
TRecord_array * _um;
|
|
TRecord_array * _codcorr;
|
|
TRecord_array * _deslin;
|
|
|
|
protected:
|
|
bool load_um();
|
|
bool load_codcorr();
|
|
bool load_deslin();
|
|
virtual const TString & get_str(const char* fieldname) const ;
|
|
int find(const TRecord_array & array, const char * fieldname, const char * s,
|
|
int from = 0) const ;
|
|
|
|
public:
|
|
|
|
virtual int read(const char* cod);
|
|
|
|
TObject* dup() const { return new TArticolo(codice()); }
|
|
|
|
const TString& codice() const { return (const char *) *_codice;}
|
|
const TString& descrizione(const char * lingua = NULL) const;
|
|
|
|
int find_um(const char * um, int from = 0) const { return find(*_um, UMART_UM, um, from); }
|
|
int find_deslin(const char * deslin, int from = 0) const { ((TArticolo *) this)->load_deslin(); return find(*_deslin, DESLIN_CODLIN, deslin, from); }
|
|
int find_codcorr(const char * codcorr, int from = 0) const { ((TArticolo *) this)->load_codcorr(); return find(*_codcorr, CODCORR_CODARTALT, codcorr, from); }
|
|
TRectype & um_row(int i) const { ((TArticolo *) this)->load_um(); return (TRectype &) _um->row(i); }
|
|
TRectype & deslin_row(int i) const { ((TArticolo *) this)->load_deslin(); return (TRectype &) _deslin->row(i); }
|
|
TRectype & codcorr_row(int i) const { ((TArticolo *) this)->load_codcorr(); return (TRectype &) _codcorr->row(i); }
|
|
|
|
TArticolo(const char* codice = NULL);
|
|
TArticolo(const TRectype& rec);
|
|
virtual ~TArticolo();
|
|
};
|
|
|
|
class TArticolo_giacenza : public TArticolo
|
|
{
|
|
TRecord_array * _mag;
|
|
TRecord_array * _storico;
|
|
|
|
protected:
|
|
bool load_mag(const char * annoes);
|
|
bool load_storico(const char * annoesrif);
|
|
virtual const TString & get_str(const char* fieldname) const ;
|
|
|
|
public:
|
|
|
|
virtual int read(const char* cod);
|
|
|
|
TObject* dup() const { return new TArticolo_giacenza(codice()); }
|
|
|
|
int find_mag(const char * annoes, const char * codmag = NULL, const char * livello = NULL, int from = 0) const ;
|
|
int find_storico(const char * annoesrif, const char * annoes = NULL, int from = 0) const { ((TArticolo_giacenza *) this)->load_storico(annoesrif); return find(*_storico, STOMAG_ANNOES, annoes, from); }
|
|
TRectype & mag_row(const char * annoes, int i) const { ((TArticolo_giacenza *) this)->load_mag(annoes); return (TRectype &) _mag->row(i); }
|
|
TRectype & storico_row(const char * annoesrif, int i) const { ((TArticolo_giacenza *) this)->load_storico(annoesrif); return (TRectype &) _storico->row(i); }
|
|
|
|
real ultimo_costo(const char * annoes) const;
|
|
real media_costi(const char * annoes) const;
|
|
real prezzo_listino(const char * annoes, const char * catven ,const char * codlist) const;
|
|
real costo_standard(const char * annoes) const;
|
|
real costo_medio(const char * annoes, const char * codmag, const char * livello) const;
|
|
real LIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
|
bool giacenza_effettiva = TRUE, bool valorizza_componenti = TRUE) const;
|
|
real FIFO_annuale(const char * annoes, const char * codmag, const char * livello,
|
|
bool giacenza_effettiva = TRUE, bool valorizza_componenti = TRUE) const;
|
|
real LIFO(const char * annoes, const char * codmag, const char * livello,
|
|
bool giacenza_effettiva = TRUE, bool valorizza_componenti = TRUE) const;
|
|
real FIFO(const char * annoes, const char * codmag, const char * livello,
|
|
bool giacenza_effettiva = TRUE, bool valorizza_componenti = TRUE) const;
|
|
|
|
TArticolo_giacenza(const char* codice = NULL) : TArticolo(codice), _mag(NULL), _storico(NULL) {}
|
|
TArticolo_giacenza(const TRectype& rec) : TArticolo(rec), _mag(NULL), _storico(NULL) {}
|
|
virtual ~TArticolo_giacenza();
|
|
};
|
|
|
|
#endif
|
|
|
|
|