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"
//
class TMask_movmag: public TMask {
static TRecord_cache cache_causali;
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;
real price_quant;
bool price_proposed;
real proposed_price(TString codart, real quant);
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
@ -34,14 +36,16 @@ class TMask_movmag: public TMask {
static void sheetrighe_put(TSheet_field &fld_righe, int item);
static void sheetrighe_get(TSheet_field &fld_righe, int item);
public:
TMask_movmag(TMag_livelli *l_m,TMov_mag * m_m);
TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m);
virtual ~TMask_movmag();
};
TRecord_cache TMask_movmag::cache_causali("%CAU");
// costruttore della maschera anagrafica di magazzino
//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")
{
// 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)));
if (new_codcaus.blank())
new_codcaus=get(F_CODCAUS);
TCausale_magazzino oldcau(old_codcaus);
TCausale_magazzino cau(new_codcaus);
if (*cau.get_collegata()!='\0')
TCausale_magazzino &oldcau=(TCausale_magazzino &)cache_causali.get(old_codcaus);
TCausale_magazzino &cau =(TCausale_magazzino &)cache_causali.get(new_codcaus);
if (*cau.caus_collegata()!='\0')
{
// deve esserci una riga collegata
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(codmag,ss.cid2index(F_CODMAG));
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.check_row(r+1);
ss.force_update(r+1);
return TRUE;
} else
if (*oldcau.get_collegata()!='\0')
if (*oldcau.caus_collegata()!='\0')
{
// scollega la vecchia riga
ss.destroy(r + 1);
@ -264,7 +268,7 @@ real TMask_movmag::proposed_price(TString codart,
TLocalisamfile anamag(LF_ANAMAG);
anamag.put("CODART",codart);
anamag.read();
switch (cau.get_tipoprz()) {
switch (cau.tipoprz()) {
// prezzo
case 'P': {
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);
bool added_some;
// aggiorna le righe che dipendono dalla causale movimento
for (int i=0; i< ss.items(); i++)
{
if (*ss.cell(i,ss.cid2index(F_CAUSRIG)) ==' ')
// la riga dipende dalla causale movimento
added_some &=(m.update_rigamov(i,old_codcaus));
}
if (added_some)
@ -334,7 +338,7 @@ bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
class TApp_movmag: public TRelation_application {
TArray used_files;
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
virtual bool user_create();
@ -365,7 +369,7 @@ bool TApp_movmag::user_create()
m_m->enable_autoload(LF_RMOVMAG);
// gestione giacenza a livelli
_livelli_giac= new TMag_livelli("FCG");
_livelli_giac= new TCodgiac_livelli;
// maschera specifica con gli handler dei movimenti
_msk= new TMask_movmag(_livelli_giac,m_m);
// relazione con un solo file (LF_MOVMAG) ma col record Head_Body