Corretto la proposta prezzo sulle righe mov
git-svn-id: svn://10.65.10.50/trunk@4954 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
5507e9b4cf
commit
5be9e4f3dc
@ -24,13 +24,14 @@ class TMask_movmag: public TMask {
|
|||||||
TString price_codart;
|
TString price_codart;
|
||||||
real price_quant;
|
real price_quant;
|
||||||
bool price_proposed;
|
bool price_proposed;
|
||||||
real proposed_price(TString codart, real quant);
|
real proposed_price(const char * codart, real quant,const char * causrig);
|
||||||
|
|
||||||
bool update_rigamov (int r, const char * old_codcaus);
|
bool update_rigamov (int r, const char * old_codcaus);
|
||||||
|
|
||||||
static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
|
static bool notify_righe(TSheet_field & fld_righe, int item, KEY k); // notify delle righe di sheet
|
||||||
static bool handle_righe(TMask_field &f, KEY k); // handler delle righe
|
static bool handle_righe(TMask_field &f, KEY k); // handler delle righe
|
||||||
static bool handle_righeprezzo(TMask_field &f, KEY k); // handler del prezzo delle righe
|
static bool handle_righeprezzo1(TMask_field &f, KEY k); // handler del prezzo delle righe
|
||||||
|
static bool handle_righeprezzo2(TMask_field &f, KEY k); // handler del prezzo delle righe
|
||||||
static bool handle_codcaus(TMask_field &fld, KEY k); // handler della causale
|
static bool handle_codcaus(TMask_field &fld, KEY k); // handler della causale
|
||||||
static bool handle_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
|
static bool handle_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
|
||||||
static void sheetrighe_put(TSheet_field &fld_righe, int item);
|
static void sheetrighe_put(TSheet_field &fld_righe, int item);
|
||||||
@ -56,9 +57,9 @@ TMask_movmag::TMask_movmag(TCodgiac_livelli *l_m,TMov_mag * m_m)
|
|||||||
TSheet_field & ss=(TSheet_field &)field(F_RIGHE);
|
TSheet_field & ss=(TSheet_field &)field(F_RIGHE);
|
||||||
set_handler(F_DATACOMP, handle_datacomp);
|
set_handler(F_DATACOMP, handle_datacomp);
|
||||||
set_handler(F_CODCAUS, handle_codcaus);
|
set_handler(F_CODCAUS, handle_codcaus);
|
||||||
ss.sheet_mask().field(F_PREZZO).set_handler(handle_righeprezzo);
|
ss.sheet_mask().field(F_QUANT).set_handler(handle_righeprezzo1);
|
||||||
ss.sheet_mask().field(F_CODART).set_handler(handle_righeprezzo);
|
ss.sheet_mask().field(F_CAUSRIG).set_handler(handle_righeprezzo1);
|
||||||
ss.sheet_mask().field(F_QUANT).set_handler(handle_righeprezzo);
|
ss.sheet_mask().field(F_CODART).set_handler(handle_righeprezzo2);
|
||||||
ss.set_notify(notify_righe);
|
ss.set_notify(notify_righe);
|
||||||
ss.set_handler(handle_righe);
|
ss.set_handler(handle_righe);
|
||||||
ss.set_userget(sheetrighe_get);
|
ss.set_userget(sheetrighe_get);
|
||||||
@ -169,22 +170,27 @@ bool TMask_movmag::notify_righe(TSheet_field & ss, int r, KEY key)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool TMask_movmag::handle_righeprezzo(TMask_field &f, KEY k)
|
// proposta soft: solo se il prezzo è non nullo (già impostato)
|
||||||
|
bool TMask_movmag::handle_righeprezzo1(TMask_field &f, KEY k)
|
||||||
{
|
{
|
||||||
TSheet_field &sh=(TSheet_field &)(*f.mask().get_sheet());
|
if (f.mask().get(F_PREZZO).blank())
|
||||||
TMask_movmag &m=(TMask_movmag &)sh.mask();
|
return handle_righeprezzo2(f, k);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// proposta hard: propone il prezzo in ogni caso
|
||||||
|
bool TMask_movmag::handle_righeprezzo2(TMask_field &f, KEY k)
|
||||||
|
{
|
||||||
|
TMask_movmag &m=(TMask_movmag &)f.mask().get_sheet()->mask();
|
||||||
if (k==K_TAB && f.focusdirty())
|
if (k==K_TAB && f.focusdirty())
|
||||||
{
|
{
|
||||||
m.price_proposed=FALSE;
|
// propone il prezzo in base alla causale
|
||||||
// in caso di nuova linea o prezzo nullo, propone il prezzo in base alla causale
|
|
||||||
if (!f.mask().get(F_QUANT).blank() &&
|
if (!f.mask().get(F_QUANT).blank() &&
|
||||||
!f.mask().get(F_CODART).blank() &&
|
!f.mask().get(F_CODART).blank())
|
||||||
f.mask().get(F_PREZZO).blank() &&
|
|
||||||
(m.price_proposed==FALSE))
|
|
||||||
{
|
{
|
||||||
m.price_proposed=TRUE;
|
|
||||||
real prz=m.proposed_price(f.mask().get(F_CODART),
|
real prz=m.proposed_price(f.mask().get(F_CODART),
|
||||||
f.mask().get_real(F_QUANT));
|
f.mask().get_real(F_QUANT),
|
||||||
|
f.mask().get(F_CAUSRIG));
|
||||||
f.mask().set(F_PREZZO,prz);
|
f.mask().set(F_PREZZO,prz);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -232,11 +238,12 @@ bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
real TMask_movmag::proposed_price(TString codart,
|
real TMask_movmag::proposed_price(const char *codart,
|
||||||
real quant)
|
real quant, const char *causrig)
|
||||||
{
|
{
|
||||||
real rv("0");
|
real rv("0");
|
||||||
TCausale_magazzino & cau=(TCausale_magazzino &)cache_causali.get(get(F_CODCAUS));
|
TCausale_magazzino & cau=
|
||||||
|
(TCausale_magazzino &)cache_causali.get(*causrig ? causrig : get(F_CODCAUS));
|
||||||
TLocalisamfile anamag(LF_ANAMAG);
|
TLocalisamfile anamag(LF_ANAMAG);
|
||||||
anamag.put("CODART",codart);
|
anamag.put("CODART",codart);
|
||||||
anamag.read();
|
anamag.read();
|
||||||
@ -246,7 +253,7 @@ real TMask_movmag::proposed_price(TString codart,
|
|||||||
TLocalisamfile umart(LF_UMART);
|
TLocalisamfile umart(LF_UMART);
|
||||||
TConfig cfgditta(CONFIG_DITTA);
|
TConfig cfgditta(CONFIG_DITTA);
|
||||||
TCondizione_vendita cv(&cfgditta,&anamag,&umart);
|
TCondizione_vendita cv(&cfgditta,&anamag,&umart);
|
||||||
cv.put_listino(get(F_CODCONDV),get(F_CATVEN));
|
cv.put_listino(get(F_CODLIST),get(F_CATVEN));
|
||||||
cv.ricerca(codart,quant);
|
cv.ricerca(codart,quant);
|
||||||
rv=cv.get_prezzo();
|
rv=cv.get_prezzo();
|
||||||
}
|
}
|
||||||
@ -264,7 +271,8 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
|
|||||||
{
|
{
|
||||||
static TString16 old_codcaus;
|
static TString16 old_codcaus;
|
||||||
|
|
||||||
if (k == K_TAB && fld.focusdirty() && old_codcaus!="") {
|
if (k == K_TAB && fld.focusdirty() && old_codcaus!="")
|
||||||
|
{
|
||||||
// aggiorna le righe di sheet
|
// aggiorna le righe di sheet
|
||||||
TMask_movmag &m=(TMask_movmag &)fld.mask();
|
TMask_movmag &m=(TMask_movmag &)fld.mask();
|
||||||
TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
|
TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user