From 0b3e4f296eabdcdc8ddb4bc02974d346e580fb95 Mon Sep 17 00:00:00 2001 From: augusto Date: Wed, 20 Aug 1997 09:39:42 +0000 Subject: [PATCH] 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 --- mg/mg1100.cpp | 15 ++++++++---- mg/mg1100a.uml | 25 ++++++++++--------- ve/ve2400.cpp | 40 +++++++++++++++++++++++++++---- ve/ve2400d.uml | 65 +++++++++++++++++++++++++------------------------- 4 files changed, 92 insertions(+), 53 deletions(-) diff --git a/mg/mg1100.cpp b/mg/mg1100.cpp index 232682cfc..63296b062 100755 --- a/mg/mg1100.cpp +++ b/mg/mg1100.cpp @@ -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); } diff --git a/mg/mg1100a.uml b/mg/mg1100a.uml index 421bf9df7..fcf69b6e2 100755 --- a/mg/mg1100a.uml +++ b/mg/mg1100a.uml @@ -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 diff --git a/ve/ve2400.cpp b/ve/ve2400.cpp index 5cdfc9041..4a98fc10c 100755 --- a/ve/ve2400.cpp +++ b/ve/ve2400.cpp @@ -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; } diff --git a/ve/ve2400d.uml b/ve/ve2400d.uml index 7b576657a..60b6fed1e 100755 --- a/ve/ve2400d.uml +++ b/ve/ve2400d.uml @@ -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