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_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 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_codarticolo(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;
// 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_DATAREG, handle_datareg);
set_handler(F_CODCAUS, handle_codcaus);
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);
TSheet_field& ss = sfield(F_RIGHE);
ss.set_line_number_width(4);
ss.set_notify(notify_righe);
ss.set_handler(handle_righe);
ss.set_userget(sheetrighe_get);
ss.set_userput(sheetrighe_put);
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
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)
{
if (k == K_TAB) // && fld.focusdirty())
if (k == K_TAB)
{
TMask_movmag& m = (TMask_movmag&) fld.mask();
const int codes = esercizi().date2esc(TDate(fld.get()));
TMask& m = fld.mask();
const TDate dt = fld.get();
const int codes = dt.ok() ? esercizi().date2esc(dt) : 0;
if (codes > 0)
{
m.set(F_ANNOES, codes);
m.set(H_ANNOES, codes);
}
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;
}