From bb3d71fd61975e38a8345462b4e67c8c4cfe60c3 Mon Sep 17 00:00:00 2001 From: alex Date: Mon, 21 Jun 2010 13:48:30 +0000 Subject: [PATCH] Patch level : 10.0 patch 767 Files correlati : co0.exe co1.exe Ricompilazione Demo : [ ] Commento : Aggiunto fornitore / cliente sulla maschera di movimentazione per Dassi Documentazione lemco e lembi Zucchetti Corretta esplosione dettagliata Nel calcolo dettagliato dell'ordinato fornitori vengo no considerati tutti gli esercizi e non solo gli ultimi 2. Dalla versione 3.2 git-svn-id: svn://10.65.10.50/trunk@20585 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- db/db0500.cpp | 38 +++++++++++++++++++++++++++++--------- db/db0500a.h | 3 +++ db/db0500d.uml | 43 ++++++++++++++++++++++++++++++++++++++++++- db/db1100.cpp | 2 +- db/db2400.cpp | 20 ++++++++++---------- db/db2400a.uml | 22 +++++++++++----------- db/dblib.cpp | 10 ++++++++-- 7 files changed, 104 insertions(+), 34 deletions(-) diff --git a/db/db0500.cpp b/db/db0500.cpp index 721b8f455..022a0c331 100755 --- a/db/db0500.cpp +++ b/db/db0500.cpp @@ -951,6 +951,8 @@ class TDistinta_mask : public TAutomask TCodgiac_livelli *_livelli_giac; TString _numdoc; TDate _datadoc; + TString4 _tipocf; + TString8 _codcf; private: void set_um_rif(int row); @@ -1508,11 +1510,15 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol mov.set(F_NUMDOC, _numdoc); mov.set(F_DATADOC, _datadoc); } + mov.set(F_TIPOCF, _tipocf); + mov.set(F_CODCF, _codcf, 0x3); mov.set(F_PREZZOM, get(F_PREZZO)); if (mov.run() == K_ENTER) { TFilename name; + _tipocf = mov.get(F_TIPOCF); + _codcf = mov.get(F_CODCF); if (do_mov) { TAssoc_array & arts = mov.costs(); @@ -1544,6 +1550,8 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol c.set(MOVMAG_NUMDOC, _numdoc); c.set(MOVMAG_EXNUMDOC, _numdoc); c.set(MOVMAG_EXDATADOC, _datadoc.string()); + c.set(MOVMAG_TIPOCF, mov.get(F_TIPOCF)); + c.set(MOVMAG_CODCF, mov.get(F_CODCF)); c.set_paragraph(format("%d,1", LF_RMOVMAG)); TString8 codmag(mov.get(F_CODMAG)); @@ -1560,18 +1568,17 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol app.run(); } - else + TLocalisamfile art(LF_ANAMAG); + art.put(ANAMAG_CODART, get(F_CODICE)); + if (art.read(_isequal, _testandlock) == NOERR) { - TLocalisamfile art(LF_ANAMAG); - art.put(ANAMAG_CODART, get(F_CODICE)); - if (art.read(_isequal, _testandlock) == NOERR) - { - const real costo(mov.get(F_PREZZOM)); // Aggiorna ultimo costo in anagrafica + const real costo(mov.get(F_PREZZOM)); // Aggiorna ultimo costo in anagrafica + if (!do_mov) art.put(ANAMAG_ULTCOS1, costo); - art.rewrite(); - } + if (mov.get(F_TIPOCF) == "F") + art.put(ANAMAG_CODFORN, mov.get(F_CODCF)); + art.rewrite(); } - const real prezzo(mov.get(F_PREZZOV)); TLocalisamfile umart(LF_UMART); umart.put(UMART_CODART, get(F_CODICE)); @@ -1601,6 +1608,19 @@ bool TDistinta_mask::on_field_event(TOperable_field& o, TField_event e, long jol etich_app.run(); } } + else + { + + if (yesno_box("Vuoi stampare le etichette")) + { + const long annoes = TDate(TODAY).year(); + const TString codart(get(F_CODICE)); + TExternal_app etich_app(format("mg3 -5 101=%s,103=%s,106=G,116=%ld", + (const char *) codart, (const char *) codart, annoes)); + + etich_app.run(); + } + } } } } diff --git a/db/db0500a.h b/db/db0500a.h index 0cb55e911..a3c24f4c1 100755 --- a/db/db0500a.h +++ b/db/db0500a.h @@ -110,4 +110,7 @@ #define F_NUMDOC 133 #define F_DATADOC 134 #define DLG_AGGPRZ 135 +#define F_TIPOCF 136 +#define F_CODCF 137 +#define F_RAGSOC 138 #endif diff --git a/db/db0500d.uml b/db/db0500d.uml index 5bb1cb838..7d25c28fc 100755 --- a/db/db0500d.uml +++ b/db/db0500d.uml @@ -1,6 +1,6 @@ #include "db0500a.h" -PAGE "Movimenti" -1 -1 80 19 +PAGE "Movimenti" -1 -1 80 21 DATE F_DATAREG BEGIN @@ -115,6 +115,47 @@ BEGIN FLAG "U" END +LISTBOX F_TIPOCF 9 +BEGIN + PROMPT 2 17 "" + ITEM " |Nessuno" + MESSAGE HIDE,F_CODCF|HIDE,F_RAGSOC|RESET,F_CODCF|RESET,F_RAGSOC + ITEM "C|Cliente" + MESSAGE SHOW,F_CODCF|SHOW,F_RAGSOC + ITEM "F|Fornitore" + MESSAGE SHOW,F_CODCF|SHOW,F_RAGSOC +END + + +// agisce anche quando l'utente non entra in gioco (settaggio da contratto...) +NUMBER F_CODCF 6 +BEGIN + PROMPT 16 17 "Codice " + USE LF_CLIFO + INPUT TIPOCF F_TIPOCF SELECT + INPUT CODCF F_CODCF + DISPLAY "Codice " CODCF + DISPLAY "Ragione sociale@50" RAGSOC + OUTPUT F_CODCF CODCF + OUTPUT F_RAGSOC RAGSOC + CHECKTYPE NORMAL + ADD RUN CG0 -1 +END + +// esegue i controlli e ricopia i valori del codice sia in CLI che in FOR +STRING F_RAGSOC 50 40 +BEGIN + PROMPT 32 17 "" + USE LF_CLIFO KEY 2 + INPUT TIPOCF F_TIPOCF SELECT + INPUT RAGSOC F_RAGSOC + DISPLAY "Ragione sociale@50" RAGSOC + DISPLAY "Codice " CODCF + OUTPUT F_CODCF CODCF + CHECKTYPE NORMAL + ADD RUN CG0 -1 +END + BUTTON DLG_OK 10 2 BEGIN PROMPT -12 -1 "" diff --git a/db/db1100.cpp b/db/db1100.cpp index afcdd5a78..3bb4aeed8 100755 --- a/db/db1100.cpp +++ b/db/db1100.cpp @@ -1044,7 +1044,7 @@ void TExplode_distinta_form::set_explosion_rows(TArray& exp_array) // Il fabbisogno e': nr. componenti di questo articolo per residuo da produrre del padre if (dettagliata && re.path().starts_with(noexplode_path)) - r = ZERO; + continue; else if (_p->_fabbisogno && _p->_explosion == scalare) r = re.last_qta() * res2produce_by_father(re); // In UM locale... diff --git a/db/db2400.cpp b/db/db2400.cpp index a1262bb3a..1957ecbb4 100755 --- a/db/db2400.cpp +++ b/db/db2400.cpp @@ -108,16 +108,16 @@ real TValorizzazione_mask::valore(const TCodice_articolo& dis, const char* liv) const TArticolo_giacenza art(dis); switch (tipoval) { - case 0: total = art.ultimo_costo(_annoes); break; - case 1: total = art.media_costi(_annoes); break; - case 2: total = art.prezzo_listino(_annoes, _catven, _codlist); break; - case 3: total = art.costo_standard(_annoes); break; - case 4: total = art.costo_medio(_annoes, _codmag, liv); break; - case 5: total = art.costo_mediopond(_annoes, _codmag, liv); break; - case 6: total = art.LIFO_annuale(_annoes, _codmag, liv); break; - case 7: total = art.FIFO_annuale(_annoes, _codmag, liv); break; - case 8: total = art.LIFO(_annoes, _codmag, liv); break; - case 9: total = art.FIFO(_annoes, _codmag, liv); break; + case last_cost: total = art.ultimo_costo(_annoes); break; + case last2cost: total = art.media_costi(_annoes); break; + case std_cost: total = art.costo_standard(_annoes); break; + case average_cost: total = art.costo_medio(_annoes, _codmag, liv); break; + case pond_cost: total = art.costo_mediopond(_annoes, _codmag, liv); break; + case LIFO_annuale: total = art.LIFO_annuale(_annoes, _codmag, liv); break; + case FIFO_annuale: total = art.FIFO_annuale(_annoes, _codmag, liv); break; + case LIFO_storico: total = art.LIFO(_annoes, _codmag, liv); break; + case FIFO_storico: total = art.FIFO(_annoes, _codmag, liv); break; + case prezzo_listino: total = art.prezzo_listino(_annoes, _catven, _codlist); break; default: NFCHECK("Tipo valorizzazione errato: %d", _tipoval); } } diff --git a/db/db2400a.uml b/db/db2400a.uml index d5180c53f..71a9aedc7 100755 --- a/db/db2400a.uml +++ b/db/db2400a.uml @@ -113,28 +113,28 @@ BEGIN PROMPT 1 5 "@bParametri in ingresso" END -LIST F_TIPO 1 22 +LIST F_TIPO 2 22 BEGIN PROMPT 2 6 "Tipo " - ITEM "0|Ultimo costo" + ITEM "1|Ultimo costo" MESSAGE HIDE,G_LISTINO@ - ITEM "1|Media costi" + ITEM "2|Media costi" MESSAGE HIDE,G_LISTINO@ - ITEM "2|Prezzo listino" + ITEM "3|Prezzo listino" MESSAGE SHOW,G_LISTINO@ - ITEM "3|Costo standard" + ITEM "4|Costo standard" MESSAGE HIDE,G_LISTINO@ - ITEM "4|Costo medio" + ITEM "5|Costo medio" MESSAGE HIDE,G_LISTINO@ - ITEM "5|Costo medio ponderato" + ITEM "6|Costo medio ponderato" MESSAGE HIDE,G_LISTINO@ - ITEM "6|LIFO annuale" + ITEM "7|LIFO annuale" MESSAGE HIDE,G_LISTINO@ - ITEM "7|FIFO annuale" + ITEM "8|FIFO annuale" MESSAGE HIDE,G_LISTINO@ - ITEM "8|LIFO" + ITEM "9|LIFO" MESSAGE HIDE,G_LISTINO@ - ITEM "9|FIFO" + ITEM "10|FIFO" MESSAGE HIDE,G_LISTINO@ END diff --git a/db/dblib.cpp b/db/dblib.cpp index cd98f5b26..486ae89a4 100755 --- a/db/dblib.cpp +++ b/db/dblib.cpp @@ -497,7 +497,10 @@ bool TDistinta_tree::father_giaclev(TString& code, int levnum) const _path.get(it - 2, (TString &) _tmp); _tmp.get(1, code); if (levnum>0) - code = livgiac().unpack_grpcode(code, levnum).trim(); + { + code = livgiac().unpack_grpcode(code, levnum); + code.trim(); + } return code.not_empty(); } @@ -514,7 +517,10 @@ bool TDistinta_tree::path_giaclev(TString& code, int levnum, const TToken_string path.get(-2, (TString &)_tmp); _tmp.get(1, code); if (levnum>0) - code = livgiac().unpack_grpcode(code, levnum).trim(); + { + code = livgiac().unpack_grpcode(code, levnum); + code.trim(); + } return code.not_empty(); }