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:
augusto 1997-08-20 09:39:42 +00:00
parent 9a3ddc9d33
commit 0b3e4f296e
4 changed files with 92 additions and 53 deletions

View File

@ -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);
}

View File

@ -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

View File

@ -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;
}

View File

@ -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