From 882301feaf703de90d669d6c495a254a941a8399 Mon Sep 17 00:00:00 2001 From: guy Date: Fri, 15 May 2015 08:46:34 +0000 Subject: [PATCH] Migliorato controllo giacenza negativa git-svn-id: svn://10.65.10.50/branches/R_10_00@23089 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- mg/mg0300.cpp | 2 +- mg/mg0300a.uml | 13 +++---------- mg/mg1100.cpp | 52 +++++++++++++++++++++++++++++++++----------------- mg/mgconf.h | 1 - mg/mgtbcau.h | 1 + mg/mgtbcau.uml | 12 +++++++++++- 6 files changed, 51 insertions(+), 30 deletions(-) diff --git a/mg/mg0300.cpp b/mg/mg0300.cpp index e05e07246..c72f6eabb 100755 --- a/mg/mg0300.cpp +++ b/mg/mg0300.cpp @@ -38,7 +38,7 @@ bool TConf_magazz::postprocess_config (TMask& mask, TConfig& config) bool TConf_magazz::user_create( ) { - TString16 arg( argv(2) ); + const TFixed_string arg = argv(2); if( arg[ 0 ] != '-' ) fatal_box( TR( "Usage: mg0 -2 -[1|2|3|4|5|6]") ); _current = arg[1]; diff --git a/mg/mg0300a.uml b/mg/mg0300a.uml index 608c1656a..795f89d7a 100755 --- a/mg/mg0300a.uml +++ b/mg/mg0300a.uml @@ -24,7 +24,7 @@ END ENDPAGE -PAGE "Installazione" 0 0 0 0 +PAGE "Configurazione Magazzino" 0 0 0 0 BOOLEAN F_GESMAG BEGIN @@ -50,7 +50,7 @@ END BOOLEAN F_GESMULTIMAG BEGIN - PROMPT 2 8 "Gestione di piu' magazzini" + PROMPT 2 8 "Gestione di pił magazzini" FIELD GESMULTIMAG GROUP 1 END @@ -102,16 +102,9 @@ BEGIN GROUP 1 END -BOOLEAN F_CHECK_GIAC -BEGIN - PROMPT 2 16 "Controllo giacenza nei movimenti" - FIELD CHECK_GIAC - GROUP 1 -END - BOOLEAN F_MOV_INDSPED BEGIN - PROMPT 2 18 "Utilizza l'indirizzo di spedizione nei movimenti" + PROMPT 2 18 "Utilizzare indirizzo di spedizione nei movimenti" FIELD MOV_INDSPED GROUP 1 END diff --git a/mg/mg1100.cpp b/mg/mg1100.cpp index ea9e7eb17..3009c1a6e 100755 --- a/mg/mg1100.cpp +++ b/mg/mg1100.cpp @@ -25,7 +25,7 @@ class TMask_movmag : public TMask real proposed_price(const char * codart, real quant,const char * causrig); int _autorows; TArray _old_qta; - bool _check_giac; + int _check_giac_neg; bool _shift_f12; TMagazzini _magazzini; @@ -154,7 +154,7 @@ TMask_movmag::TMask_movmag(TMov_mag * m_m) : TMask("mg1100") sm.field(F_DESDEP).enable(gd); ss.enable_column(ss.cid2index(F_CODDEP),gd); _autorows = prassid.get_int("AUTOROWS", "mg"); - _check_giac = prassid.get_bool("CHECK_GIAC", "mg"); + _check_giac_neg = prassid.get_int("CHECK_GIAC", "mg"); if (!prassid.get_bool("MOV_INDSPED", "mg")) { hide(F_INDSPED); @@ -350,24 +350,42 @@ bool TMask_movmag::notify_righe(TSheet_field& ss, int r, KEY key) ss.row(r).add(diff.string(), ss.cid2index(F_QUANT)); } } - if (m._check_giac) - { - real giac = ss.sheet_mask().get_real(F_GIAC); - real * old_qta = (real *) m._old_qta.objptr(r); - TString8 codcaus = ss.sheet_mask().get(F_CAUSRIG); - if (codcaus.blank()) - codcaus = ss.mask().get(F_CODCAUS); - const TCausale_magazzino cau(codcaus); - if (cau.sgn(s_giac) == -1) - diff = -diff; - if (old_qta != NULL) - diff -= *old_qta; - giac += diff; + const TCodice_articolo codart = ss.sheet_mask().get(F_CODART); + if (codart.full()) + { + TString8 codcaus = ss.sheet_mask().get(F_CAUSRIG); + if (codcaus.blank()) + codcaus = ss.mask().get(F_CODCAUS); + const TCausale_magazzino cau(codcaus); + const int check_giac_neg = cau.get_int("I4"); + if (check_giac_neg) + { + real giac = ss.sheet_mask().get_real(F_GIAC); + real* old_qta = (real*)m._old_qta.objptr(r); + if (cau.sgn(s_giac) < 0) + diff = -diff; + if (old_qta != NULL) + diff -= *old_qta; + giac += diff; - if (giac < ZERO) - message_box("Attenzione giacenza negativa per l'articolo %s", (const char *) ss.sheet_mask().get(F_CODART)); + if (giac < ZERO) + { + TString msg; + msg.format(FR("Attenzione giacenza negativa per l'articolo %s"), (const char*)codart); + switch (check_giac_neg) + { + case 1: warning_box(msg); break; + case 2: msg << TR("\nSi desidera continuare ugualmente?"); + if (!yesno_box(msg)) + return false; + break; + default: return error_box(msg); break; + } + } + } } + if (m.update_rigamov(r,old_codcaus,old_codart,old_quant)) ss.select(r); diff --git a/mg/mgconf.h b/mg/mgconf.h index 8d19479f2..0cc737c14 100755 --- a/mg/mgconf.h +++ b/mg/mgconf.h @@ -8,5 +8,4 @@ #define F_GESVALUTA 108 #define F_GESDECIMALI 109 #define F_RIPORTA_ORD 110 -#define F_CHECK_GIAC 111 #define F_MOV_INDSPED 112 diff --git a/mg/mgtbcau.h b/mg/mgtbcau.h index 7bc2bf9fe..c71a1657f 100755 --- a/mg/mgtbcau.h +++ b/mg/mgtbcau.h @@ -47,6 +47,7 @@ #define F_SGNDOTTM 155 #define F_SGNCONYR 156 #define F_SGNCONMN 157 +#define F_CHECK_GIAC 158 #define G_SGNVAL 20 #define G_SGNQTA 21 diff --git a/mg/mgtbcau.uml b/mg/mgtbcau.uml index f7806b7ba..326f60cf1 100755 --- a/mg/mgtbcau.uml +++ b/mg/mgtbcau.uml @@ -248,7 +248,7 @@ END BOOLEAN F_SCAR_ALT BEGIN - PROMPT 32 20 "Gli articoli alternativi nei documenti" + PROMPT 44 20 "Gli articoli alternativi nei documenti" FIELD B6 END ENDPAGE @@ -516,5 +516,15 @@ BEGIN WARNING "Deve essere soddisfatta l'equazione: ((GIAC-RIM)-(ACQ+ENTR)+(VEN+USC)+(ACL-INCL)+(PRODF-PRODC))=0" END +LISTBOX F_CHECK_GIAC 1 32 +BEGIN + PROMPT 2 20 "Controllo giacenza negativa " + ITEM "0|Nessuno" + ITEM "1|Avvertimento non bloccante" + ITEM "2|Richiesta di continuare" + ITEM "3|Errore bloccante" + FIELD I4 +END + ENDPAGE ENDMASK \ No newline at end of file