Patch level : 4.0 812
Files correlati : ve0.exe Ricompilazione Demo : [ ] Commento : Bug 0000775: Centro di costo di default Aggiungere un centro di costo di default sulle commesse da proporre nei movimenti di analitica e sui documenti git-svn-id: svn://10.65.10.50/trunk@15761 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
parent
38983f3ccf
commit
e33e4be78d
28
ve/velib.h
28
ve/velib.h
@ -812,8 +812,16 @@ class TDocumento_mask : public TVariable_mask // velib06
|
||||
bool _ges_mag, _ges_dep, _ges_ca;
|
||||
TString _std_mag, _std_dep;
|
||||
TSmart_card * _smartcard;
|
||||
short _last_cdc_dlg;
|
||||
short _last_cms_dlg;
|
||||
short _cdc_start;
|
||||
short _cdc_end;
|
||||
short _cms_start;
|
||||
short _cms_end;
|
||||
short _cdc_start_sh;
|
||||
short _cdc_end_sh;
|
||||
short _cms_start_sh;
|
||||
short _cms_end_sh;
|
||||
TString _codcms;
|
||||
TString _codcms_sh;
|
||||
|
||||
protected:
|
||||
virtual void next_page(int p);
|
||||
@ -867,9 +875,6 @@ public:
|
||||
|
||||
const TString& stdmag() const { return _std_mag; }
|
||||
const TString& stddep() const { return _std_dep; }
|
||||
const short last_cdc_dlg() const { return _last_cdc_dlg;}
|
||||
const short last_cms_dlg() const { return _last_cms_dlg;}
|
||||
|
||||
|
||||
TSheet_field& sheet() const { return *_sheet; }
|
||||
TCodgiac_livelli& livelli() const { return *_livelli_giac; }
|
||||
@ -885,6 +890,19 @@ public:
|
||||
bool is_calculated_page(int p) const { return _calculated_pages[p]; }
|
||||
TSmart_card* smartcard() const { return _smartcard;}
|
||||
|
||||
short cdc_start() const { return _cdc_start;}
|
||||
short cdc_end() const { return _cdc_end;}
|
||||
short cms_start() const { return _cms_start;}
|
||||
short cms_end() const { return _cms_end;}
|
||||
short cdc_start_sh() const { return _cdc_start_sh;}
|
||||
short cdc_end_sh() const { return _cdc_end_sh;}
|
||||
short cms_start_sh() const { return _cms_start_sh;}
|
||||
short cms_end_sh() const { return _cms_end_sh;}
|
||||
TString & codcms() { return _codcms;}
|
||||
const TString & codcms() const { return _codcms;}
|
||||
TString & codcms_sh() { return _codcms_sh;}
|
||||
const TString & codcms_sh() const { return _codcms_sh;}
|
||||
|
||||
TDocumento_mask(const char* tipodoc);
|
||||
virtual ~TDocumento_mask();
|
||||
};
|
||||
|
@ -52,7 +52,10 @@ bool TOriginal_row_mask::on_key(KEY key)
|
||||
TDocumento_mask::TDocumento_mask(const char* td)
|
||||
: TVariable_mask(), _progs_page(-1),
|
||||
_condv(NULL), _smartcard(NULL),
|
||||
_last_cdc_dlg(-1), _last_cms_dlg(-1)
|
||||
_cms_start(-1), _cms_end(-1),
|
||||
_cms_start_sh(-1), _cms_end_sh(-1),
|
||||
_cdc_start(-1), _cdc_end(-1),
|
||||
_cdc_start_sh(-1), _cdc_end_sh(-1)
|
||||
|
||||
{
|
||||
CHECK(strlen(td) <= 4, "TDocumento_mask(TipoDocumento) not (MaskName)");
|
||||
@ -378,6 +381,8 @@ void TDocumento_mask::insert_anal_page()
|
||||
const TString& level = ini.get("Level", NULL, i+1); // Legge il livello 1 o 2
|
||||
if (level == "CDC") // Crea centro di costo
|
||||
{
|
||||
_cdc_start = dlg;
|
||||
_cdc_end = dlg + ca_multilevel_code_info(LF_CDC).levels()-1;
|
||||
if (use_fsc && fasinfo.parent() == LF_CDC)
|
||||
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, fsc_req);
|
||||
else
|
||||
@ -385,11 +390,12 @@ void TDocumento_mask::insert_anal_page()
|
||||
const bool cdc_req = ini.get_bool("CdcRequired");
|
||||
|
||||
insert_anal_fields(*this, newpage, LF_CDC, y, dlg, dlgd, cdc_req);
|
||||
_last_cdc_dlg = dlg - 1;
|
||||
}
|
||||
} else
|
||||
if (level == "CMS") // Crea commessa
|
||||
{
|
||||
_cms_start = dlg;
|
||||
_cms_end = dlg + ca_multilevel_code_info(LF_COMMESSE).levels()-1;
|
||||
if (use_fsc && fasinfo.parent() == LF_COMMESSE)
|
||||
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, fsc_req);
|
||||
else
|
||||
@ -397,9 +403,9 @@ void TDocumento_mask::insert_anal_page()
|
||||
const bool cms_req = ini.get_bool("CmsRequired");
|
||||
|
||||
insert_anal_fields(*this, newpage, LF_COMMESSE, y, dlg, dlgd, cms_req);
|
||||
_last_cms_dlg = dlg - 1;
|
||||
}
|
||||
}
|
||||
set_field_handler(_cms_end, codcms_handler);
|
||||
}
|
||||
if (use_fsc && fasinfo.parent() <= 0)
|
||||
insert_anal_fields(*this, newpage, LF_FASI, y, dlg, dlgd, fsc_req);
|
||||
@ -469,7 +475,7 @@ void TDocumento_mask::configura_sheet(TSheet_field& sheet)
|
||||
{
|
||||
if( to_delete[i] )
|
||||
{
|
||||
sheet.enable_column( i + FIRST_FIELD, FALSE);
|
||||
sheet.enable_column( i + FIRST_FIELD, false);
|
||||
sheet.delete_column( i + FIRST_FIELD);
|
||||
}
|
||||
}
|
||||
@ -926,7 +932,7 @@ void TDocumento_mask::spese2mask()
|
||||
doc().put(DOC_CAMBIO, get(F_CAMBIO));
|
||||
doc().put(DOC_CONTROEURO, get(F_CONTROEURO));
|
||||
|
||||
doc().update_spese_aut(spese, FALSE, &sh);
|
||||
doc().update_spese_aut(spese, false, &sh);
|
||||
sh.force_update();
|
||||
}
|
||||
|
||||
@ -1136,29 +1142,39 @@ TVariable_mask* TDocumento_mask::riga_mask(int numriga)
|
||||
short dlg = FR_CDC1; // id del primo campo da generare
|
||||
short dlgd = FR_DESCDC1;
|
||||
|
||||
_cdc_start_sh = _cdc_end_sh = -1 ;
|
||||
_cms_start_sh = _cms_end_sh = -1 ;
|
||||
for (i = 0; i < 2; i++)
|
||||
{
|
||||
const TString& level = ini.get("Level", NULL, i+1); // Legge il livello 1 o 2
|
||||
if (level == "CDC") // Crea centro di costo
|
||||
{
|
||||
if (_cdc_start_sh < 0)
|
||||
{
|
||||
_cdc_start_sh = dlg;
|
||||
_cdc_end_sh = dlg + ca_multilevel_code_info(LF_CDC).levels()-1;
|
||||
}
|
||||
if (use_fsc && fasinfo.parent() == LF_CDC)
|
||||
insert_anal_fields(*m, page, LF_FASI, y, dlg, dlgd, false);
|
||||
else
|
||||
{
|
||||
insert_anal_fields(*m, page, LF_CDC, y, dlg, dlgd, false);
|
||||
m->set_handler( dlg - 1, cdc_mag_handler);
|
||||
}
|
||||
m->set_handler( _cdc_end_sh, cdc_mag_handler);
|
||||
|
||||
} else
|
||||
if (level == "CMS") // Crea commessa
|
||||
{
|
||||
if (_cms_start_sh < 0)
|
||||
{
|
||||
_cms_start_sh = dlg;
|
||||
_cms_end_sh = dlg + ca_multilevel_code_info(LF_COMMESSE).levels()-1;
|
||||
}
|
||||
if (use_fsc && fasinfo.parent() == LF_COMMESSE)
|
||||
insert_anal_fields(*m, page, LF_FASI, y, dlg, dlgd, false);
|
||||
else
|
||||
{
|
||||
insert_anal_fields(*m, page, LF_COMMESSE, y, dlg, dlgd, false);
|
||||
m->set_handler( dlg - 1, cms_mag_handler);
|
||||
}
|
||||
m->set_handler(_cms_end_sh, cms_mag_handler);
|
||||
}
|
||||
}
|
||||
if (use_fsc && fasinfo.parent() <= 0)
|
||||
@ -1295,6 +1311,12 @@ bool TDocumento_mask::ss_notify( TSheet_field& ss, int r, KEY key )
|
||||
m.update_progs();
|
||||
}
|
||||
break;
|
||||
case K_CTRL + K_ENTER: // inizio modifica
|
||||
{
|
||||
TRiga_documento& riga = doc[r + 1];
|
||||
|
||||
m.codcms_sh() = riga.get(RDOC_CODCMS);
|
||||
}
|
||||
case K_DEL: // Cancellazione
|
||||
{
|
||||
doc.destroy_row(r + 1, TRUE);
|
||||
@ -3194,4 +3216,4 @@ bool TDocumento_mask::codval_handler( TMask_field& f, KEY key )
|
||||
m.sfield(F_SHEET).force_update(); // Aggiorna punti decimali degli importi
|
||||
}
|
||||
return TRUE;
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,8 @@
|
||||
#include "../mg/deslin.h"
|
||||
#include "../mg/umart.h"
|
||||
#include "../ca/calib01.h"
|
||||
#include "../ca/commesse.h"
|
||||
|
||||
|
||||
|
||||
#define MAX_VIS_RATE 5
|
||||
@ -2112,7 +2114,7 @@ bool ca_mag_handler(TMask_field& f, bool cdc = true)
|
||||
if (cod.blank())
|
||||
{
|
||||
cod.cut(0);
|
||||
last_fld = cdc ? mask.last_cdc_dlg() : mask.last_cms_dlg();
|
||||
last_fld = cdc ? mask.cdc_end() : mask.cms_end();
|
||||
first_fld = last_fld - info.levels() + 1;
|
||||
|
||||
for (i = first_fld; i <= last_fld; i++)
|
||||
@ -2133,9 +2135,34 @@ bool ca_mag_handler(TMask_field& f, bool cdc = true)
|
||||
bool cms_mag_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
if ((key == K_TAB && f.focusdirty()) || key == K_ENTER)
|
||||
{
|
||||
ca_mag_handler(f, false);
|
||||
return true;
|
||||
TMask & m = f.mask();
|
||||
const TSheet_field & s = *m.get_sheet();
|
||||
TDocumento_mask & mask = (TDocumento_mask & )s.mask();
|
||||
const TRectype & curr = m.efield(mask.cms_start_sh()).browse()->cursor()->curr();
|
||||
const TString codcosto = curr.get(COMMESSE_CODCOSTO);
|
||||
const TString & codcms = curr.get(COMMESSE_CODCMS);
|
||||
|
||||
if (mask.cdc_start_sh() >= 0 && mask.codcms_sh() != codcms) // && codcosto.full())
|
||||
{
|
||||
for (short i = mask.cdc_start_sh(); i <= mask.cdc_end_sh(); i++)
|
||||
{
|
||||
TEdit_field & e = m.efield(i);
|
||||
const TFieldref * f = e.field();
|
||||
|
||||
if (f != NULL)
|
||||
{
|
||||
const int from = f->from();
|
||||
const int to = f->to();
|
||||
|
||||
m.set(i, codcosto.sub(from, to), 0x2);
|
||||
}
|
||||
}
|
||||
mask.codcms_sh() = codcms;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
bool cdc_mag_handler(TMask_field& f, KEY key)
|
||||
@ -2143,5 +2170,39 @@ bool cdc_mag_handler(TMask_field& f, KEY key)
|
||||
if ((key == K_TAB && f.focusdirty()) || key == K_ENTER)
|
||||
ca_mag_handler(f);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
bool codcms_handler(TMask_field& f, KEY key)
|
||||
{
|
||||
TDocumento_mask & mask = (TDocumento_mask & )f.mask();
|
||||
if ((key == K_TAB && f.focusdirty()) || key == K_ENTER)
|
||||
{
|
||||
const TRectype & curr = mask.efield(mask.cms_start()).browse()->cursor()->curr();
|
||||
const TString codcosto = curr.get(COMMESSE_CODCOSTO);
|
||||
const TString & codcms = curr.get(COMMESSE_CODCMS);
|
||||
|
||||
if (mask.cdc_start() >= 0 && mask.codcms() != codcms)
|
||||
{
|
||||
for (short i = mask.cdc_start(); i <= mask.cdc_end(); i++)
|
||||
{
|
||||
TEdit_field & e = mask.efield(i);
|
||||
const TFieldref * f = e.field();
|
||||
|
||||
if (f != NULL)
|
||||
{
|
||||
const int from = f->from();
|
||||
const int to = f->to();
|
||||
|
||||
mask.set(i, codcosto.sub(from, to), 0x2);
|
||||
}
|
||||
}
|
||||
mask.codcms() = codcms;
|
||||
}
|
||||
}
|
||||
else
|
||||
if (key == K_TAB && !mask.is_running())
|
||||
mask.codcms() = mask.doc().get(DOC_CODCMS);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
@ -32,7 +32,7 @@ bool link_handler( TMask_field& f, KEY key );
|
||||
bool cdc_mag_handler(TMask_field& f, KEY key);
|
||||
bool cms_mag_handler(TMask_field& f, KEY key);
|
||||
|
||||
|
||||
bool codcms_handler(TMask_field &f, KEY key);
|
||||
bool numdocrif_hndl(TMask_field& field, KEY key);
|
||||
bool smart_hndl(TMask_field& field, KEY key);
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user