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"
|
// 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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user