diff --git a/mg/mg4200.cpp b/mg/mg4200.cpp index f3c868abf..4c367e703 100755 --- a/mg/mg4200.cpp +++ b/mg/mg4200.cpp @@ -20,11 +20,14 @@ class TForm_inventario : public TForm_stampemg int colonne; TConfig *conf_ditta; TArticolo_giacenza * _curr_art; - TString16 _codlist,_catven; + TString16 _codlist,_catven; // codici listino e cat vendita + bool _giaceff, // flag inventario di giacenza + _valcomp; // flag valorizzzione finiti o componenti + TTipo_valorizz _valorizz_scelte[MAX_VAL_COLUMNS]; // valorizzazioni delle varie colonne + TArticolo_giacenza &curr_art(); - TTipo_valorizz _valorizz_scelte[MAX_VAL_COLUMNS]; public: - void set_codlistino(const char * codcm,const char * cod); + void set_parametri(const char * codcm,const char * cod,bool giaceff, bool valcomp); bool valorizzazione(TForm_item &cf, TTipo_valorizz t); bool validate(TForm_item &cf, TToken_string &s); void add_colval(int tipo); @@ -42,7 +45,16 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s) TString16 annoes(magrec.get(MAG_ANNOES)); subcode=s.get(); if (subcode=="GIAC") { - cf.set("135"); + real v=magrec.get_real(MAG_GIAC); + if (!_giaceff) { + v +=magrec.get_real(MAG_ACL); + v -=magrec.get_real(MAG_INCL); + if (_valcomp) + v -=magrec.get_real(MAG_PRODCOMP); + else + v +=magrec.get_real(MAG_PRODFIN); + } + cf.set(v.string()); } if (subcode=="VAL1") { valorizzazione(cf,_valorizz_scelte[0]); @@ -62,8 +74,26 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s) if (subcode=="VAL6" && colonne >=6) { valorizzazione(cf,_valorizz_scelte[5]); } + if (subcode=="NAMEVAL1") { + cf.set(Nome_valorizz[_valorizz_scelte[0]]); + } + if (subcode=="NAMEVAL2"&& colonne >=2) { + cf.set(Nome_valorizz[_valorizz_scelte[1]]); + } + if (subcode=="NAMEVAL3" && colonne >=3) { + cf.set(Nome_valorizz[_valorizz_scelte[2]]); + } + if (subcode=="NAMEVAL4" && colonne >=4) { + cf.set(Nome_valorizz[_valorizz_scelte[3]]); + } + if (subcode=="NAMEVAL5"&& colonne >=5) { + cf.set(Nome_valorizz[_valorizz_scelte[4]]); + } + if (subcode=="NAMEVAL6" && colonne >=6) { + cf.set(Nome_valorizz[_valorizz_scelte[5]]); + } if (subcode=="LINEATOTALI") { - TString l(39*colonne+12,'-'); + TString l(29*colonne+12,'-'); cf.set(l); } } @@ -73,7 +103,7 @@ bool TForm_inventario::validate(TForm_item &cf, TToken_string &s) TArticolo_giacenza &TForm_inventario::curr_art() { TRectype & magrec=relation()->lfile(LF_MAG).curr(); - if (_curr_art==NULL || _curr_art->codice()!=magrec.get(MAG_CODART) ) { + if (_curr_art==NULL || magrec.get(MAG_CODART)!=_curr_art->codice() ) { if (_curr_art) delete _curr_art; _curr_art=new TArticolo_giacenza(magrec.get(MAG_CODART)); } @@ -138,31 +168,40 @@ bool TForm_inventario::valorizzazione(TForm_item &cf, TTipo_valorizz t) cf.set(curr_art().costo_standard(annoes).string()); } if (t==valorizz_costmedio) { - cf.set(curr_art().costo_standard(annoes).string()); + const TString codmag(magrec.get(MAG_CODMAG)); + const TString livello(magrec.get(MAG_LIVELLO)); + cf.set(curr_art().costo_medio(annoes,codmag,livello).string()); } if (t==valorizz_LIFO) { - cf.set(curr_art().LIFO(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string()); + const TString codmag(magrec.get(MAG_CODMAG)); + const TString livello(magrec.get(MAG_LIVELLO)); + cf.set(curr_art().LIFO(annoes,codmag,livello, _giaceff,_valcomp).string()); } if (t==valorizz_FIFO) { - cf.set(curr_art().FIFO(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string()); + const TString codmag(magrec.get(MAG_CODMAG)); + const TString livello(magrec.get(MAG_LIVELLO)); + cf.set(curr_art().FIFO(annoes,codmag,livello, _giaceff,_valcomp).string()); } if (t==valorizz_LIFOa) { - cf.set(curr_art().LIFO_annuale(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string()); + const TString codmag(magrec.get(MAG_CODMAG)); + const TString livello(magrec.get(MAG_LIVELLO)); + cf.set(curr_art().LIFO_annuale(annoes,codmag,livello, _giaceff,_valcomp).string()); } if (t==valorizz_FIFOa) { - cf.set(curr_art().FIFO_annuale(annoes,magrec.get(MAG_CODMAG),magrec.get(MAG_LIVELLO)).string()); + const TString codmag(magrec.get(MAG_CODMAG)); + const TString livello(magrec.get(MAG_LIVELLO)); + cf.set(curr_art().FIFO_annuale(annoes,codmag,livello, _giaceff,_valcomp).string()); } return TRUE; } - - - -void TForm_inventario::set_codlistino(const char * codcatv,const char * codlist) +void TForm_inventario::set_parametri(const char * codcatv,const char * codlist,bool giaceff, bool valcomp) { _catven=codcatv; _codlist=codlist; + _giaceff=giaceff; + _valcomp=valcomp; } TForm_inventario::TForm_inventario(const char *name,const char *code) : @@ -317,9 +356,15 @@ bool TStampa_inventario::user_create() { _mask = new TStampainv_mask(); _files = new TArray(); + // aggiunge i files per usare i tracciati record _files->add(new TLocalisamfile(LF_ANAMAG)); + _files->add(new TLocalisamfile(LF_UMART)); + _files->add(new TLocalisamfile(LF_DESLIN)); + _files->add(new TLocalisamfile(LF_CODCORR)); _files->add(new TLocalisamfile(LF_MAG)); _files->add(new TLocalisamfile(LF_STOMAG)); + _files->add(new TLocalisamfile(LF_MOVMAG)); + _files->add(new TLocalisamfile(LF_RMOVMAG)); return TRUE; } @@ -441,7 +486,11 @@ bool TStampa_inventario::set_print(int i) _form->add_colval(_mask->get_int(F_VAL4)); _form->add_colval(_mask->get_int(F_VAL5)); _form->add_colval(_mask->get_int(F_VAL6)); - _form->set_codlistino(_mask->get(F_CATVENLISTINO),_mask->get(F_CODLISTINO)); + _form->set_parametri(_mask->get(F_CATVENLISTINO), + _mask->get(F_CODLISTINO), + *_mask->get(F_REALE_GIAC)=='G', + *_mask->get(F_FIN_COMP)=='C' + ); _form->print(); delete _form; diff --git a/mg/mg4200.h b/mg/mg4200.h index 5e760e649..edd54e2ff 100755 --- a/mg/mg4200.h +++ b/mg/mg4200.h @@ -41,6 +41,7 @@ #define F_VAL4 154 #define F_VAL5 155 #define F_VAL6 156 +#define F_FIN_COMP 157 #define G_CATMER 1 #define G_CODART 2 diff --git a/mg/mg4200.uml b/mg/mg4200.uml index 8b84ef423..e04226a2b 100755 --- a/mg/mg4200.uml +++ b/mg/mg4200.uml @@ -4,7 +4,7 @@ PAGE "Stampa inventario" -1 -1 78 20 LISTBOX F_ORDINE 10 BEGIN - PROMPT 2 1 "Ordinamento " + PROMPT 2 1 "Ordinamento " ITEM "A|articoli" MESSAGE ENABLE,F_ORDINEART MESSAGE SHOW,F_TOTALIMAGAZZINI|SHOW,F_TOTALIDEPOSITI|"X",F_DETTAGLIOMAG|"X",F_DETTAGLIODEP|HIDE,F_DETTAGLIODEP|HIDE,F_DETTAGLIOMAG @@ -26,10 +26,25 @@ BEGIN MESSAGE SHOW,G_CATMER@|ENABLE,G_CODART@|HIDE,G_DESART@ END +LIST F_REALE_GIAC 12 +BEGIN + PROMPT 2 2 "Inventario " + ITEM "G|di giacenza" + ITEM "R|reale" + HELP "reale =(giac+ACL-INCL+PROD)" +END + +LIST F_FIN_COMP 26 +BEGIN + PROMPT 2 3 "Valorizzo solo " + ITEM "F|i finiti in produzione" + ITEM "C|i componenti in produzione" +END + NUMBER F_ANNOES 4 BEGIN FLAGS "A" - PROMPT 2 2 "Codice es. " + PROMPT 42 2 "Codice es. " USE ESC INPUT CODTAB F_ANNOES DISPLAY "Esercizio" CODTAB @@ -38,12 +53,6 @@ BEGIN OUTPUT F_ANNOES CODTAB ADD NONE END -LIST F_REALE_GIAC 26 -BEGIN - PROMPT 34 2 "Inventario " - ITEM "G|di giacenza" - ITEM "R|reale (giac+ACL-INCL+PROD)" -END STRING F_DAART 20 BEGIN @@ -234,7 +243,7 @@ END LIST F_VAL1 20 BEGIN - PROMPT 2 11 "Valorizzazione colonna 1 " + PROMPT 2 12 "Valorizz. 1 " ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" ITEM "3|Prezzo di listino" @@ -247,7 +256,7 @@ BEGIN END LIST F_VAL2 20 BEGIN - PROMPT 2 12 "Valorizzazione colonna 2 " + PROMPT 42 12 "Valorizz. 2 " ITEM "|" ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" @@ -261,7 +270,7 @@ BEGIN END LIST F_VAL3 20 BEGIN - PROMPT 2 13 "Valorizzazione colonna 3 " + PROMPT 2 13 "Valorizz. 3 " ITEM "|" ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" @@ -275,7 +284,7 @@ BEGIN END LIST F_VAL4 20 BEGIN - PROMPT 2 14 "Valorizzazione colonna 4 " + PROMPT 42 13 "Valorizz. 4 " ITEM "|" ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" @@ -289,7 +298,7 @@ BEGIN END LIST F_VAL5 20 BEGIN - PROMPT 2 15 "Valorizzazione colonna 5 " + PROMPT 2 14 "Valorizz. 5 " ITEM "|" ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" @@ -303,7 +312,7 @@ BEGIN END LIST F_VAL6 20 BEGIN - PROMPT 2 16 "Valorizzazione colonna 6 " + PROMPT 42 14 "Valorizz. 6 " ITEM "|" ITEM "1|Ultimo costo" ITEM "2|Media ultimi costi" @@ -318,7 +327,7 @@ END STRING F_CATVENLISTINO 2 BEGIN FLAGS "U" - PROMPT 32 17 "Cat. ven. " + PROMPT 2 17 "Listino: cat. ven. " USE CVE INPUT CODTAB F_CATVENLISTINO DISPLAY "Cat." CODTAB @@ -331,7 +340,7 @@ END STRING F_CODLISTINO 3 BEGIN FLAGS "U" - PROMPT 52 17 "Codice listino " + PROMPT 42 17 "codice " USE LF_CONDV INPUT TIPO "L" INPUT COD F_CODLISTINO diff --git a/mg/mg4200a.frm b/mg/mg4200a.frm index 9007800ad..b8024d853 100755 --- a/mg/mg4200a.frm +++ b/mg/mg4200a.frm @@ -25,7 +25,7 @@ BEGIN FINALE 133 END -SECTION HEADER ODD 5 +SECTION HEADER ODD 6 STRINGA 1 40 1 BEGIN @@ -77,100 +77,144 @@ END ITEM "6|six" END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 72 4 "" + MESSAGE _USER,NAMEVAL1 + END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 101 4 "" + MESSAGE _USER,NAMEVAL2 + GROUP FG_COL2 + END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 130 4 "" + MESSAGE _USER,NAMEVAL3 + GROUP FG_COL3 + END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 159 4 "" + MESSAGE _USER,NAMEVAL4 + GROUP FG_COL4 + END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 188 4 "" + MESSAGE _USER,NAMEVAL5 + GROUP FG_COL5 + END + STRINGA 1 28 + BEGIN + KEY "H1" + PROMPT 217 4 "" + MESSAGE _USER,NAMEVAL6 + GROUP FG_COL6 + END + + STRINGA 6 20 BEGIN KEY "H1" - PROMPT 2 4 "Codice" + PROMPT 2 5 "Codice" END STRINGA 7 40 BEGIN KEY "H1" - PROMPT 24 4 "Descrizione" + PROMPT 24 5 "Descrizione" END STRINGA 7 40 BEGIN KEY "H1" - PROMPT 45 4 "UM" + PROMPT 45 5 "UM" END STRINGA 8 12 BEGIN KEY "H1" - PROMPT 55 4 "Giacenza" + PROMPT 55 5 "Giacenza" END STRINGA 8 12 BEGIN KEY "H1" - PROMPT 71 4 "Valore" + PROMPT 71 5 "Valore" END STRINGA 9 12 BEGIN KEY "H1" - PROMPT 84 4 "Val.unitario" + PROMPT 84 5 "Val.unitario" + GROUP FG_COL2 END STRINGA 9 12 BEGIN KEY "H1" - PROMPT 100 4 "Valore" + PROMPT 100 5 "Valore" GROUP FG_COL2 END STRINGA 10 12 BEGIN KEY "H1" - PROMPT 113 4 "Val.unitario" + PROMPT 113 5 "Val.unitario" GROUP FG_COL2 END STRINGA 10 12 BEGIN KEY "H1" - PROMPT 129 4 "Valore" + PROMPT 129 5 "Valore" GROUP FG_COL3 END STRINGA 11 12 BEGIN KEY "H1" - PROMPT 142 4 "Val.unitario" + PROMPT 142 5 "Val.unitario" GROUP FG_COL3 END STRINGA 12 12 BEGIN KEY "H1" - PROMPT 158 4 "Valore" + PROMPT 158 5 "Valore" GROUP FG_COL4 END STRINGA 13 12 BEGIN KEY "H1" - PROMPT 171 4 "Val.unitario" + PROMPT 171 5 "Val.unitario" GROUP FG_COL4 END STRINGA 14 12 BEGIN KEY "H1" - PROMPT 187 4 "Valore" + PROMPT 187 5 "Valore" GROUP FG_COL5 END STRINGA 15 12 BEGIN KEY "H1" - PROMPT 200 4 "Val.unitario" + PROMPT 200 5 "Val.unitario" GROUP FG_COL5 END STRINGA 14 12 BEGIN KEY "H1" - PROMPT 216 4 "Valore" + PROMPT 216 5 "Valore" GROUP FG_COL6 END STRINGA 15 12 BEGIN KEY "H1" - PROMPT 229 4 "Val.unitario" + PROMPT 229 5 "Val.unitario" GROUP FG_COL6 END STRINGA 17 146 BEGIN KEY "Separatore (iniziale)" - PROMPT 1 5 "------------------------------------------------------------------------------------------------------------------------------------------------------" + PROMPT 1 6 "------------------------------------------------------------------------------------------------------------------------------------------------------" END END diff --git a/mg/mg4200b.frm b/mg/mg4200b.frm index 40e5cb275..bcbd96c6a 100755 --- a/mg/mg4200b.frm +++ b/mg/mg4200b.frm @@ -103,6 +103,7 @@ END BEGIN KEY "H1" PROMPT 84 4 "Val.unitario" + GROUP FG_COL2 END STRINGA 9 12 BEGIN