Uso dell'oggetto tmagazzini
Magazzini e depositi di default e gestione magazzino singolo git-svn-id: svn://10.65.10.50/trunk@5078 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
9a3ddc9d33
commit
0b3e4f296e
@ -37,6 +37,7 @@ 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:
|
||||
TMagazzini magazzini;
|
||||
TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m);
|
||||
virtual ~TMask_movmag();
|
||||
};
|
||||
@ -79,6 +80,9 @@ TMask_movmag::TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m)
|
||||
field(F_CATVEN).show(prassid.get_bool("GESLISCV"));
|
||||
else
|
||||
field(F_CATVEN).hide();
|
||||
|
||||
ss.sheet_mask().field(F_DESMAG).enable(magazzini.gestmultimag());
|
||||
ss.enable_column(ss.cid2index(F_CODMAG),magazzini.gestmultimag());
|
||||
}
|
||||
|
||||
|
||||
@ -137,6 +141,7 @@ bool TMask_movmag::handle_righe(TMask_field &f, KEY k)
|
||||
|
||||
bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
|
||||
{
|
||||
TMask_movmag &m=(TMask_movmag &)ss.mask();
|
||||
static TString16 old_codcaus;
|
||||
if ( key == K_DEL ) // Cancellazione
|
||||
{
|
||||
@ -151,18 +156,20 @@ bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
|
||||
}
|
||||
|
||||
} else if (key == K_INS) { // Inserimento
|
||||
if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
return FALSE; // cannot insert between a row and its generated one
|
||||
} else if (key == K_CTRL + K_INS) { // Inserimento accordato
|
||||
if (m.magazzini.standardmag().not_empty())
|
||||
{
|
||||
if (*ss.cell(r,ss.cid2index( F_AUTOMATICA))==riga_automatica)
|
||||
return FALSE; // cannot insert between a row and its generated one
|
||||
ss.row(r).add(m.magazzini.standardmag(),ss.cid2index(F_CODMAG));
|
||||
ss.row(r).add(m.magazzini.standarddep(),ss.cid2index(F_CODDEP));
|
||||
}
|
||||
|
||||
} else if (key == K_SPACE) {
|
||||
old_codcaus=ss.sheet_mask().get(F_CAUSRIG);
|
||||
if (old_codcaus.blank())
|
||||
old_codcaus=ss.mask().get(F_CODCAUS);
|
||||
|
||||
} else if (key == K_ENTER) {
|
||||
TMask_movmag &m=(TMask_movmag &)ss.mask();
|
||||
if (m.update_rigamov(r,old_codcaus))
|
||||
ss.select(r+1);
|
||||
}
|
||||
|
@ -61,7 +61,7 @@ END
|
||||
STRING F_CODMAG 3
|
||||
BEGIN
|
||||
PROMPT 2 5 "Magazzino "
|
||||
FLAGS "U"
|
||||
FLAGS "UG"
|
||||
FIELD CODMAG[1,3]
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_CODMAG
|
||||
@ -80,8 +80,8 @@ BEGIN
|
||||
PROMPT 2 6 "Deposito "
|
||||
FLAGS "U"
|
||||
FIELD CODMAG[4,5]
|
||||
USE MAG
|
||||
INPUT CODTAB[1,3] F_CODMAG
|
||||
USE MAG SELECT CODTAB[4,5]!=""
|
||||
INPUT CODTAB[1,3] F_CODMAG SELECT
|
||||
INPUT CODTAB[4,5] F_CODDEP
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
@ -97,13 +97,14 @@ END
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 5 ""
|
||||
USE MAG KEY 2
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione mag.@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
OUTPUT F_CODDEP CODTAB[4,5]
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CHECK,F_CODMAG
|
||||
// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output
|
||||
// a cascata??? perchè mi ritrovo il coddep cancellato???
|
||||
END
|
||||
@ -113,18 +114,20 @@ STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 22 6 ""
|
||||
FLAGS "H"
|
||||
COPY USE F_DESMAG
|
||||
USE MAG KEY 2 SELECT (CODTAB[4,5]!="")&&(CODTAB[1,3]==#F_CODMAG)
|
||||
INPUT S0 F_DESDEP
|
||||
COPY DISPLAY F_DESMAG
|
||||
COPY OUTPUT F_DESMAG
|
||||
// MESSAGE K_TAB,F_CODDEP
|
||||
OUTPUT F_CODDEP CODTAB[4,5]
|
||||
OUTPUT F_DESDEP S0
|
||||
CHECKTYPE NORMAL
|
||||
MESSAGE EMPTY CHECK,F_CODDEP
|
||||
END
|
||||
|
||||
|
||||
STRING H_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 5 ""
|
||||
FLAGS "D"
|
||||
FLAGS "DH"
|
||||
END
|
||||
|
||||
//Abilitazione/disabil. dei campi relativi al deposito
|
||||
@ -132,8 +135,8 @@ BOOLEAN H_GESTGIA
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAGS "HG"
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP|SHOW,H_DESMAG|HIDE,F_DESMAG
|
||||
MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP|HIDE,H_DESMAG|SHOW,F_DESMAG
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP
|
||||
MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP
|
||||
END
|
||||
|
||||
//Livelli giacenza
|
||||
|
@ -46,7 +46,9 @@ class TMask_anamag: public TMask {
|
||||
bool check_totali_storico();
|
||||
public:
|
||||
void ricalcola_giacenze();
|
||||
|
||||
TString16 um_principale;
|
||||
TMagazzini magazzini;
|
||||
TEsercizi_contabili esercizi_contabili;
|
||||
|
||||
TMask_anamag(TRelation * rel,bool mg_autorized);
|
||||
@ -94,17 +96,17 @@ TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
|
||||
// ***************************************************
|
||||
// ABILITAZIONI PARAMETRICHE
|
||||
TConfig mgconfig(CONFIG_DITTA, "mg");
|
||||
|
||||
// Abilita la pagina delle giacenze
|
||||
if (mg_autorized && mgconfig.get_bool("GESMAG"))
|
||||
if (mg_autorized && magazzini.gestmag())
|
||||
{
|
||||
enable_page(3,TRUE);
|
||||
enable_page(4,TRUE);
|
||||
// setta i campi della maschera per la pagina giacenze
|
||||
TSheet_field &fld_stomag= (TSheet_field &)field(F_SHEETSTOMAG);
|
||||
TSheet_field &fld_giac= (TSheet_field &)field(F_SHEETGIAC);
|
||||
// disabilita le colonne quando non sono utilizzati i livelli di giacenza
|
||||
for (int i=0; i<4; i++)
|
||||
for (int i=0; i<4; i++)
|
||||
{
|
||||
livelli_giac->set_sheetcolumn(fld_giac,F_LIV1+i,i+1);
|
||||
}
|
||||
@ -114,7 +116,7 @@ TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
fld_giac.sheet_mask().field(F_NDIST).enable(FALSE);
|
||||
}
|
||||
// abilita la gestione delle ubicazioni (manuale/su tabella)
|
||||
if (mgconfig.get("GESUBICAZ")=="M") {
|
||||
if (magazzini.gestubi_man()) {
|
||||
fld_giac.sheet_mask().field(F_UBICAZ).show(FALSE);
|
||||
fld_giac.sheet_mask().field(F_UBICAZD).show(FALSE);
|
||||
fld_giac.sheet_mask().field(F_UBICAZ2).show(TRUE);
|
||||
@ -123,6 +125,11 @@ TMask_anamag::TMask_anamag(TRelation * rel,bool mg_autorized) : TMask("ve2400")
|
||||
fld_giac.sheet_mask().field(F_UBICAZD).show(TRUE);
|
||||
fld_giac.sheet_mask().field(F_UBICAZ2).show(FALSE);
|
||||
}
|
||||
// abilita la gestione del monomagazzino
|
||||
fld_giac.sheet_mask().field(F_DESMAG).enable(magazzini.gestmultimag());
|
||||
fld_giac.enable_column(fld_giac.cid2index(F_CODMAG),magazzini.gestmultimag());
|
||||
fld_stomag.enable_column(fld_stomag.cid2index(F_STOCODMAG),magazzini.gestmultimag());
|
||||
|
||||
} else {
|
||||
enable_page(4,FALSE);
|
||||
enable_page(3,FALSE);
|
||||
@ -619,9 +626,11 @@ bool TMask_anamag::check_totali_storico()
|
||||
|
||||
bool TMask_anamag::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
||||
{
|
||||
TMask_anamag & m=(TMask_anamag &)f.mask();
|
||||
switch (k)
|
||||
{
|
||||
case (K_ENTER): // fine modifica
|
||||
{
|
||||
real ck(f.cell(i,f.cid2index(F_RIM)));
|
||||
ck+=f.cell(i,f.cid2index(F_ACQ));
|
||||
ck+=f.cell(i,f.cid2index(F_ENTR));
|
||||
@ -639,6 +648,19 @@ bool TMask_anamag::notify_sheet_giac(TSheet_field &f, int i, KEY k)
|
||||
f.error_box("La giacenza deve essere pari a RIM+(ACQ+ENTR)-(VEN+USC)-(ACL-INCL)-(PRODF-PRODC) - SCARTI)");
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
break;
|
||||
case (K_CTRL + K_INS): // richiesta di inserimento
|
||||
case (K_TAB): // modifica
|
||||
if (*f.cell(i,f.cid2index(F_CODMAG))==' ')
|
||||
{
|
||||
if (m.magazzini.standardmag().not_empty())
|
||||
{
|
||||
f.row(i).add(m.magazzini.standardmag(),f.cid2index(F_CODMAG));
|
||||
f.row(i).add(m.magazzini.standarddep(),f.cid2index(F_CODDEP));
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
@ -677,7 +699,7 @@ bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
} else {
|
||||
m.remove_totali_storico(oldcodmag);
|
||||
}
|
||||
case (K_CTRL + K_INS ):
|
||||
case (K_CTRL + K_INS ): // fine inserimento
|
||||
newcodmag=(s.cell(r,s.cid2index(F_STOCODMAG)));
|
||||
newanno=(s.cell(r,s.cid2index(F_STOANNOES)));
|
||||
if (newcodmag != " ")
|
||||
@ -702,6 +724,14 @@ bool TMask_anamag::notify_sheet_sto(TSheet_field &s, int r, KEY k)
|
||||
s.force_update();
|
||||
}
|
||||
break;
|
||||
|
||||
case (K_INS): // richiesta di inserimento
|
||||
if (m.magazzini.standardmag().not_empty())
|
||||
{
|
||||
s.row(r).add(m.magazzini.standardmag(),s.cid2index(F_STOCODMAG));
|
||||
}
|
||||
break;
|
||||
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
|
@ -23,7 +23,7 @@ PAGE "Giacenze" -1 -1 80 23
|
||||
STRING F_CODMAG 3
|
||||
BEGIN
|
||||
PROMPT 2 0 "Magazzino "
|
||||
FLAGS "U"
|
||||
FLAGS "UG"
|
||||
FIELD CODMAG[1,3]
|
||||
USE MAG SELECT CODTAB[4,5]==""
|
||||
INPUT CODTAB F_CODMAG
|
||||
@ -42,60 +42,59 @@ BEGIN
|
||||
PROMPT 2 1 "Deposito "
|
||||
FLAGS "U"
|
||||
FIELD CODMAG[4,5]
|
||||
USE MAG
|
||||
INPUT CODTAB[1,3] F_CODMAG
|
||||
USE MAG SELECT CODTAB[4,5]!=""
|
||||
INPUT CODTAB[1,3] F_CODMAG SELECT
|
||||
INPUT CODTAB[4,5] F_CODDEP
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
DISPLAY "Denominazione dep.@50" S0
|
||||
OUTPUT F_CODDEP CODTAB[4,5]
|
||||
OUTPUT F_DESDEP S0
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
// OUTPUT F_CODMAG CODTAB[1,3]
|
||||
CHECKTYPE NORMAL
|
||||
STR_EXPR ((#H_GESTGIA=="X")&&(#F_CODDEP!=""))||(#H_GESTGIA!="X")
|
||||
// WARNING "Indicare il deposito"
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 0 ""
|
||||
USE MAG KEY 2
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione mag.@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
OUTPUT F_CODDEP CODTAB[4,5]
|
||||
// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output
|
||||
// a cascata??? perchè mi ritrovo il coddep cancellato???
|
||||
END
|
||||
|
||||
|
||||
STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 22 1 ""
|
||||
FLAGS "H"
|
||||
COPY USE F_DESMAG
|
||||
INPUT S0 F_DESDEP
|
||||
COPY DISPLAY F_DESMAG
|
||||
COPY OUTPUT F_DESMAG
|
||||
// MESSAGE K_TAB,F_CODDEP
|
||||
END
|
||||
|
||||
|
||||
STRING H_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 0 ""
|
||||
FLAGS "D"
|
||||
END
|
||||
|
||||
STRING F_DESMAG 50
|
||||
BEGIN
|
||||
PROMPT 22 0 ""
|
||||
USE MAG KEY 2 SELECT CODTAB[4,5]==""
|
||||
INPUT S0 F_DESMAG
|
||||
DISPLAY "Denominazione mag.@50" S0
|
||||
DISPLAY "Cod. magazzino" CODTAB[1,3]
|
||||
DISPLAY "Cod. deposito" CODTAB[4,5]
|
||||
OUTPUT F_CODMAG CODTAB[1,3]
|
||||
// GUIDO!!!!!!!!!!!!!!!!! in che ordine vengono eseguiti gli output
|
||||
// a cascata??? perchè mi ritrovo il coddep cancellato???
|
||||
END
|
||||
|
||||
STRING F_DESDEP 50
|
||||
BEGIN
|
||||
PROMPT 22 1 ""
|
||||
FLAGS "H"
|
||||
USE MAG KEY 2 SELECT (CODTAB[1,3]==#F_CODMAG)&&(CODTAB[4,5]!="")
|
||||
INPUT S0 F_DESDEP
|
||||
COPY DISPLAY F_DESMAG
|
||||
// OUTPUT F_CODMAG CODTAB[1,3]
|
||||
OUTPUT F_CODDEP CODTAB[4,5]
|
||||
// MESSAGE K_TAB,F_CODDEP
|
||||
END
|
||||
|
||||
|
||||
//Abilitazione/disabil. dei campi relativi al deposito
|
||||
BOOLEAN H_GESTGIA
|
||||
BEGIN
|
||||
PROMPT 1 1 ""
|
||||
FLAGS "HG"
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP|SHOW,H_DESMAG|HIDE,F_DESMAG
|
||||
MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP|HIDE,H_DESMAG|SHOW,F_DESMAG
|
||||
MESSAGE TRUE ENABLE,F_CODDEP|CHECK,F_CODDEP|SHOW,F_DESDEP
|
||||
MESSAGE FALSE RESET,F_CODDEP|RESET,F_DESDEP|DISABLE,F_CODDEP|HIDE,F_DESDEP
|
||||
END
|
||||
|
||||
//Livelli giacenza
|
||||
|
Loading…
x
Reference in New Issue
Block a user