campo-sirio/mg/mglib02.h
augusto 8423f6e10e Cat ven in codice listino
Enum per i tipi di valorizzazioni


git-svn-id: svn://10.65.10.50/trunk@4430 c028cbd2-c16b-5b4b-a496-9718f37d4682
1997-05-28 10:14:39 +00:00

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