Nuovi oggetti per il magazzino alivelli

Cache causali sulla maschera


git-svn-id: svn://10.65.10.50/trunk@4831 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
augusto 1997-07-07 10:55:47 +00:00
parent 7cfb50740b
commit d2c7486a24

View File

@ -18,12 +18,14 @@
// maschera dell'applicazione "Gestione interattiva movimenti di magazzino" // maschera dell'applicazione "Gestione interattiva movimenti di magazzino"
// //
class TMask_movmag: public TMask { class TMask_movmag: public TMask {
static TRecord_cache cache_causali;
TMov_mag * mov_mag; TMov_mag * mov_mag;
TMag_livelli * livelli_giac; // oggetto gestione livelli di giacenza TCodgiac_livelli * livelli_giac; // oggetto gestione livelli di giacenza
TString price_codart; TString price_codart;
real price_quant; real price_quant;
bool price_proposed; bool price_proposed;
real proposed_price(TString codart, real quant); real proposed_price(TString codart, real quant);
bool update_rigamov (int r, const char * old_codcaus); bool update_rigamov (int r, const char * old_codcaus);
static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
@ -34,14 +36,16 @@ class TMask_movmag: public TMask {
static void sheetrighe_put(TSheet_field &fld_righe, int item); static void sheetrighe_put(TSheet_field &fld_righe, int item);
static void sheetrighe_get(TSheet_field &fld_righe, int item); static void sheetrighe_get(TSheet_field &fld_righe, int item);
public: public:
TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m); TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m);
virtual ~TMask_movmag(); virtual ~TMask_movmag();
}; };
TRecord_cache TMask_movmag::cache_causali("%CAU");
// costruttore della maschera anagrafica di magazzino // costruttore della maschera anagrafica di magazzino
//TMask_movmag::TMask_movmag() : //TMask_movmag::TMask_movmag() :
TMask_movmag::TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m) TMask_movmag::TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m)
: TMask("mg1100") : TMask("mg1100")
{ {
// oggetti dell'applicazione // oggetti dell'applicazione
@ -222,9 +226,9 @@ bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
TString16 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG))); TString16 new_codcaus(ss.cell(r,ss.cid2index(F_CAUSRIG)));
if (new_codcaus.blank()) if (new_codcaus.blank())
new_codcaus=get(F_CODCAUS); new_codcaus=get(F_CODCAUS);
TCausale_magazzino oldcau(old_codcaus); TCausale_magazzino &oldcau=(TCausale_magazzino &)cache_causali.get(old_codcaus);
TCausale_magazzino cau(new_codcaus); TCausale_magazzino &cau =(TCausale_magazzino &)cache_causali.get(new_codcaus);
if (*cau.get_collegata()!='\0') if (*cau.caus_collegata()!='\0')
{ {
// deve esserci una riga collegata // deve esserci una riga collegata
TString16 codmag,coddep; TString16 codmag,coddep;
@ -242,13 +246,13 @@ bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
ss.row(r+1).add(prezzo.string(),ss.cid2index(F_PREZZO)); ss.row(r+1).add(prezzo.string(),ss.cid2index(F_PREZZO));
ss.row(r+1).add(codmag,ss.cid2index(F_CODMAG)); ss.row(r+1).add(codmag,ss.cid2index(F_CODMAG));
ss.row(r+1).add(coddep,ss.cid2index(F_CODDEP)); ss.row(r+1).add(coddep,ss.cid2index(F_CODDEP));
ss.row(r+1).add(cau.get_collegata(),ss.cid2index(F_CAUSRIG)); ss.row(r+1).add(cau.caus_collegata(),ss.cid2index(F_CAUSRIG));
ss.row(r+1).add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA)); ss.row(r+1).add(TString(1,riga_automatica),ss.cid2index(F_AUTOMATICA));
ss.check_row(r+1); ss.check_row(r+1);
ss.force_update(r+1); ss.force_update(r+1);
return TRUE; return TRUE;
} else } else
if (*oldcau.get_collegata()!='\0') if (*oldcau.caus_collegata()!='\0')
{ {
// scollega la vecchia riga // scollega la vecchia riga
ss.destroy(r + 1); ss.destroy(r + 1);
@ -264,7 +268,7 @@ real TMask_movmag::proposed_price(TString codart,
TLocalisamfile anamag(LF_ANAMAG); TLocalisamfile anamag(LF_ANAMAG);
anamag.put("CODART",codart); anamag.put("CODART",codart);
anamag.read(); anamag.read();
switch (cau.get_tipoprz()) { switch (cau.tipoprz()) {
// prezzo // prezzo
case 'P': { case 'P': {
TLocalisamfile umart(LF_UMART); TLocalisamfile umart(LF_UMART);
@ -295,10 +299,10 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE); TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
bool added_some; bool added_some;
// aggiorna le righe che dipendono dalla causale movimento
for (int i=0; i< ss.items(); i++) for (int i=0; i< ss.items(); i++)
{ {
if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ') if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ')
// la riga dipende dalla causale movimento
added_some &=(m.update_rigamov(i,old_codcaus)); added_some &=(m.update_rigamov(i,old_codcaus));
} }
if (added_some) if (added_some)
@ -334,7 +338,7 @@ bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
class TApp_movmag: public TRelation_application { class TApp_movmag: public TRelation_application {
TArray used_files; TArray used_files;
TMask_movmag *_msk; // maschera principale TMask_movmag *_msk; // maschera principale
TMag_livelli * _livelli_giac;// oggetto handler per i livelli di giacenza TCodgiac_livelli * _livelli_giac;// oggetto handler per i livelli di giacenza
TRelation * _rel; // relazione contenente il file movimenti TRelation * _rel; // relazione contenente il file movimenti
virtual bool user_create(); virtual bool user_create();
@ -365,7 +369,7 @@ bool TApp_movmag::user_create()
m_m->enable_autoload(LF_RMOVMAG); m_m->enable_autoload(LF_RMOVMAG);
// gestione giacenza a livelli // gestione giacenza a livelli
_livelli_giac= new TMag_livelli("FCG"); _livelli_giac= new TCodgiac_livelli;
// maschera specifica con gli handler dei movimenti // maschera specifica con gli handler dei movimenti
_msk= new TMask_movmag(_livelli_giac,m_m); _msk= new TMask_movmag(_livelli_giac,m_m);
// relazione con un solo file (LF_MOVMAG) ma col record Head_Body // relazione con un solo file (LF_MOVMAG) ma col record Head_Body