Migliorato controllo giacenza negativa

git-svn-id: svn://10.65.10.50/branches/R_10_00@23089 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2015-05-15 08:46:34 +00:00
parent 89281098ee
commit 882301feaf
6 changed files with 51 additions and 30 deletions

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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