campo-sirio/mr/mr2100.h
alex 974b558363 Patch level : xx.414
Files correlati     :
Ricompilazione Demo : [ ]
Commento            : Riportata 01.04 patch 414


git-svn-id: svn://10.65.10.50/trunk@8260 c028cbd2-c16b-5b4b-a496-9718f37d4682
1999-06-18 15:35:05 +00:00

173 lines
5.5 KiB
C++
Executable File

#ifndef __MR2100_H
#define __MR2100_H
class TMRP_record : public TObject
{
TMRP_time _time; // time
real _gross_requirement; // gross req
real _on_hand; // projected on hand
real _sched_receipts; // scheduled receipts (released )
real _net_requirement; // lot-sized net requirement
real _planned_orders; // anticipated planned orders
real _proposed_orders; // anticipated planned orders
public:
const real& gross_requirement() const { return _gross_requirement; }
const real& on_hand() const { return /*_on_hand <= ZERO ? ZERO :*/_on_hand ; }
const real& sched_receipts() const { return _sched_receipts; }
const real& net_requirement() const { return _net_requirement; }
const real& planned_orders() const { return _planned_orders; }
const real& proposed_orders() const { return _proposed_orders; }
const real& set_on_hand(const real & val) { return _on_hand=val;}
const real& set_net_req(const real & val) { return _net_requirement=val;}
const real& add_net_req(const real & val);
const real& add_gross_req(const real& val);
const real& add_sched_rec(const real& val);
const real& add_planned_ord(const real& val);
const real& add_proposed_ord(const real& val);
TMRP_record & operator=(const TMRP_record & a);
const TMRP_time& time() const { return _time; }
virtual TObject* dup() const;
TMRP_record(const TMRP_time& t);
virtual ~TMRP_record() { }
};
class TMRP_line : public TSortable
{
TCodice_articolo _codart;
TString16 _livgiac;
TString8 _codmag;
TString8 _codmag_coll;
TString8 _codimp;
TString8 _codlin;
long _codcli;
static TArticolo_giacenza *_articolo_giac;
protected:
TArray _req_per_bucket;
TPointer_array _sons;
TArray _qta_sons;
TString _description;
bool is_son(const TCodice_articolo& art) const;
void lotti_riordino(real & minimo, real & increm) const ;
public:
TMRP_record& record(int i) const;
TMRP_record& record(const TMRP_time& t) const;
const TCodice_articolo& codice() const { return _codart; }
const TString& livgiac() const { return _livgiac; }
const TString& codmag() const { return _codmag; }
const TString& codmag_coll() const { return _codmag_coll; }
const TString& codimp() const { return _codimp; }
const TString& codlin() const { return _codlin; }
long codcli() const { return _codcli; }
const TString& description() const { return _description; }
virtual int compare(const TSortable& s) const;
int first_bucket(int i) const { return _req_per_bucket.first(); }
int last_bucket() const { return _req_per_bucket.last(); }
int next_bucket(int i) const { return _req_per_bucket.succ(i); }
int add_son(const real& qta, TMRP_line* son);
int sons() const { return _sons.items(); }
const TMRP_line& son(int i) const { return (const TMRP_line&)_sons[i]; }
TMRP_line& son(int i) { return (TMRP_line&)_sons[i]; }
const real& qta_son(int i) const { return (const real&)_qta_sons[i]; }
const real & on_hand(int i) const
{return record(i).on_hand();}
const real & gross_requirement(int i) const
{return record(i).gross_requirement();}
const real & net_requirement(int i) const
{return record(i).net_requirement();}
const real & sched_receipts(int i) const
{return record(i).sched_receipts();}
const real & planned_orders(int i) const
{return record(i).planned_orders();}
const real & proposed_orders(int i) const
{return record(i).proposed_orders();}
const TString& set_description(const TString &s) { return _description=s; }
const real& set_on_hand(int i, const real& val);
const real& set_on_hand(const TMRP_time& t, const real& val);
const real& add_gross_req(const TMRP_time& t, const real& val);
const real& add_sched_rec(const TMRP_time& t, const real& val);
const real& add_planned_ord(const TMRP_time& t, const real& val);
const real& add_net_req(const TMRP_time& t, const real& val);
const real& add_net_req(int i, const real& val);
const real& set_net_req(int i, const real& val);
const real& add_proposed_ord(int i, const real& val);
real sizeup_net_requirement(int i, const real& val);
real& giacenza_attuale(real&) const;
real& giacenza_attuale(real&, const TDate & data_attuale) const;
real &scorta_minima(real&) const;
real &scorta_minima(real&, const TDate & data) const;
const TMRP_time& lead_time(int i, TMRP_time& t, bool antic = TRUE) const;
const TMRP_time& time(int i) const { return record(i).time(); }
virtual TObject* dup() const;
TMRP_line & operator=(const TMRP_line & a);
TMRP_line(const char* art, const char* giac,
const char* magdep, const char* magdepc,
const char* imp, const char* lin,
long codcli);
TMRP_line(const TMRP_line&a);
virtual ~TMRP_line() { }
};
class TMRP_lines : public TMRP_array
{
bool _ignore_mag;
bool _ignore_imp;
bool _ignore_lin;
protected:
virtual TSortable* new_obj(const TToken_string& key) const;
public:
TMRP_line* find(const TCodice_articolo& codart,
const TString& giac, const TString& mag, const TString& magc,
const TString& imp, const TString& lin,
long codcli,
bool create=FALSE);
TMRP_line& operator[](long n) const
{ return (TMRP_line&)find_obj(n); }
void ignore(bool im, bool ii, bool il)
{ _ignore_mag = im; _ignore_imp = ii; _ignore_lin = il; }
virtual TObject* dup() const;
TMRP_lines & operator= (const TMRP_lines &a);
TMRP_lines();
TMRP_lines(const TMRP_lines &a);
virtual ~TMRP_lines();
};
#endif