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;
|
||||
real price_quant;
|
||||
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);
|
||||
|
||||
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_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_datacomp(TMask_field &, KEY k); // handler del numero di registrazione
|
||||
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);
|
||||
set_handler(F_DATACOMP, handle_datacomp);
|
||||
set_handler(F_CODCAUS, handle_codcaus);
|
||||
ss.sheet_mask().field(F_PREZZO).set_handler(handle_righeprezzo);
|
||||
ss.sheet_mask().field(F_CODART).set_handler(handle_righeprezzo);
|
||||
ss.sheet_mask().field(F_QUANT).set_handler(handle_righeprezzo);
|
||||
ss.sheet_mask().field(F_QUANT).set_handler(handle_righeprezzo1);
|
||||
ss.sheet_mask().field(F_CAUSRIG).set_handler(handle_righeprezzo1);
|
||||
ss.sheet_mask().field(F_CODART).set_handler(handle_righeprezzo2);
|
||||
ss.set_notify(notify_righe);
|
||||
ss.set_handler(handle_righe);
|
||||
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());
|
||||
TMask_movmag &m=(TMask_movmag &)sh.mask();
|
||||
if (f.mask().get(F_PREZZO).blank())
|
||||
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())
|
||||
{
|
||||
m.price_proposed=FALSE;
|
||||
// in caso di nuova linea o prezzo nullo, propone il prezzo in base alla causale
|
||||
// propone il prezzo in base alla causale
|
||||
if (!f.mask().get(F_QUANT).blank() &&
|
||||
!f.mask().get(F_CODART).blank() &&
|
||||
f.mask().get(F_PREZZO).blank() &&
|
||||
(m.price_proposed==FALSE))
|
||||
!f.mask().get(F_CODART).blank())
|
||||
{
|
||||
m.price_proposed=TRUE;
|
||||
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);
|
||||
}
|
||||
}
|
||||
@ -232,11 +238,12 @@ bool TMask_movmag::update_rigamov (int r, const char * old_codcaus)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
real TMask_movmag::proposed_price(TString codart,
|
||||
real quant)
|
||||
real TMask_movmag::proposed_price(const char *codart,
|
||||
real quant, const char *causrig)
|
||||
{
|
||||
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);
|
||||
anamag.put("CODART",codart);
|
||||
anamag.read();
|
||||
@ -246,7 +253,7 @@ real TMask_movmag::proposed_price(TString codart,
|
||||
TLocalisamfile umart(LF_UMART);
|
||||
TConfig cfgditta(CONFIG_DITTA);
|
||||
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);
|
||||
rv=cv.get_prezzo();
|
||||
}
|
||||
@ -264,7 +271,8 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
|
||||
{
|
||||
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
|
||||
TMask_movmag &m=(TMask_movmag &)fld.mask();
|
||||
TSheet_field & ss=(TSheet_field & )m.field(F_RIGHE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user