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:
parent
7cfb50740b
commit
d2c7486a24
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user