Migliorata gestione data di competenza / registrazione

git-svn-id: svn://10.65.10.50/branches/R_10_00@23123 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
guy 2015-07-10 14:53:29 +00:00
parent eba1707224
commit 973152a545

View File

@ -45,7 +45,8 @@ protected:
static bool handle_righeprezzo1(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_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 data competenza
static bool handle_datareg(TMask_field &, KEY k); // handler data di registrazione
static bool handle_checksosp(TMask_field &fld, KEY k); // handler static bool handle_checksosp(TMask_field &fld, KEY k); // handler
static bool handle_codarticolo(TMask_field &fld, KEY k); // handler static bool handle_codarticolo(TMask_field &fld, KEY k); // handler
static bool handle_causrig(TMask_field &fld, KEY k); // handler static bool handle_causrig(TMask_field &fld, KEY k); // handler
@ -112,25 +113,25 @@ TMask_movmag::TMask_movmag(TMov_mag * m_m) : TMask("mg1100")
{ {
_mov_mag = m_m; _mov_mag = m_m;
// setta handler e notify // setta handler e notify
TSheet_field& ss = sfield(F_RIGHE);
TMask& sm = ss.sheet_mask();
ss.set_line_number_width(4);
set_handler(F_DATACOMP, handle_datacomp); set_handler(F_DATACOMP, handle_datacomp);
set_handler(F_DATAREG, handle_datareg);
set_handler(F_CODCAUS, handle_codcaus); set_handler(F_CODCAUS, handle_codcaus);
sm.field(F_QUANT).set_handler(handle_righeprezzo1);
sm.field(F_CAUSRIG).set_handler(handle_causrig); TSheet_field& ss = sfield(F_RIGHE);
sm.field(F_CODART).set_handler(handle_codarticolo); ss.set_line_number_width(4);
sm.field(F_GIAC).set_handler(handle_giacattuale);
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);
ss.set_userput(sheetrighe_put); ss.set_userput(sheetrighe_put);
ss.set_lines_record(m_m->body()); ss.set_lines_record(m_m->body());
// setta i campi della maschera
// per la pagina giacenze
TMask& sm = ss.sheet_mask();
sm.field(F_QUANT).set_handler(handle_righeprezzo1);
sm.field(F_CAUSRIG).set_handler(handle_causrig);
sm.field(F_CODART).set_handler(handle_codarticolo);
sm.field(F_GIAC).set_handler(handle_giacattuale);
// setta i campi della maschera per la pagina giacenze
// setta le colonne in base all'abilitazione dei livelli di giacenza // setta le colonne in base all'abilitazione dei livelli di giacenza
livelli_giacenza().set_sheet_columns(ss, F_LIV1); livelli_giacenza().set_sheet_columns(ss, F_LIV1);
@ -859,17 +860,35 @@ bool TMask_movmag::handle_codcaus(TMask_field &fld, KEY k)
bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k) bool TMask_movmag::handle_datacomp(TMask_field &fld, KEY k)
{ {
if (k == K_TAB) // && fld.focusdirty()) if (k == K_TAB)
{ {
TMask_movmag& m = (TMask_movmag&) fld.mask(); TMask& m = fld.mask();
const int codes = esercizi().date2esc(TDate(fld.get())); const TDate dt = fld.get();
const int codes = dt.ok() ? esercizi().date2esc(dt) : 0;
if (codes > 0) if (codes > 0)
{ {
m.set(F_ANNOES, codes); m.set(F_ANNOES, codes);
m.set(H_ANNOES, codes); m.set(H_ANNOES, codes);
} }
else else
return fld.error_box(TR("La data indicata non appartiene a nessuno degli esercizi contabili inseriti ")) ; return fld.error_box(TR("La data di competenza non appartiene a nessun esercizio contabile")) ;
}
return true;
}
bool TMask_movmag::handle_datareg(TMask_field &fld, KEY k)
{
if (k == K_TAB || k == K_ENTER)
{
const TMask& m = fld.mask();
const TDate dt = fld.get();
const int codes = dt.ok() ? esercizi().date2esc(dt) : 0;
if (codes <= 0)
return fld.error_box(TR("La data di registrazione non appartiene a nessun esercizio contabile")) ;
const TDate dc = m.get(F_DATACOMP);
if (dt < dc)
return fld.error_box(TR("La data di registrazione non puo' precedere quella di competenza")) ;
} }
return true; return true;
} }