Patch level : 10.0

Files correlati     : lv3, lvbollac.msk, lvbolaca.msk
Ricompilazione Demo : [ ]
Commento            :
Modificati gli handler di documento in modo che i campi in testata vengano riempiti sempre correttamente indiepndentemente dal fatto che vengano caricate le righe documenti dai contratti

Sulle maschere: modificate le associazioni campi - handler a seconda del documento (si ricorda che lvbolaca fa riferimento al documento che non precarica le righe documento, ma prepara solo la testata)


git-svn-id: svn://10.65.10.50/trunk@18555 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-03-18 15:26:57 +00:00
parent 8653d3522f
commit e641ff0ac5
3 changed files with 121 additions and 29 deletions

View File

@ -28,6 +28,8 @@ protected:
static void dettaglio_causale(TSheet_field& ss);
//hanlder di documento:
static bool lv_data_handler(TMask_field& f, KEY k);
static bool lv_contratto_handler(TMask_field& f, KEY k);
static bool lv_bolla_handler(TMask_field& f, KEY k);
//handler di riga:
static bool lv_ritirato_handler(TMask_field& f, KEY k);
@ -387,20 +389,21 @@ bool TGestione_bolle_msk::ss_notify(TSheet_field& ss, int r, KEY key)
return TDocumento_mask::ss_notify(ss, r, key);
}
//LV_BOLLA_HANDLER: handler di bolla, carica le righe contratto sulle bolle, preparando la struttura del documento
bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
//LV_TESTATA_HANDLER: handler che si occupa di decodificare i campi data in testata
bool TGestione_bolle_msk::lv_data_handler(TMask_field& f, KEY k)
{
bool ok = true;
bool ok = true;
switch(f.dlg())
{
case F_CODCF: ok = TDocumento_mask::clifo_handler( f, k ); break;
{
case F_DATADOC: ok = data_hndl( f, k ); break;
default: break;
}
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
TDate oggi(TODAY);
TDate primo = oggi;
primo.set_day(1);
@ -409,13 +412,60 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
//decodifica del giorno della settimana
dmsk.set(F_LVGIORNO, itow(oggi.wday()));
//settimana del mese = settimana(oggi) - settimana(primo del mese) +1
long tmp = oggi.week() - primo.week() + 1;
TString4 settimana;
settimana << tmp;
dmsk.set(F_LVSETTIMANA, settimana);
return ok;
}
//LV_CONTRATTO_HANDLER: handler che si occupa di riempire il campo contratto in testata
bool TGestione_bolle_msk::lv_contratto_handler(TMask_field& f, KEY k)
{
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
const long codcf = dmsk.get_long(F_CODCF);
const int indsped = dmsk.get_int(F_CODINDSP);
TDate datadoc = dmsk.get_date(F_DATADOC);
if (!datadoc.ok())
datadoc = TODAY;
const int anno = datadoc.year();
if (codcf <= 0)
return true;
long codcont = lv_find_contract(codcf,indsped,datadoc);
if (codcont <= 0)
{
warning_box(TR("Non ci sono contratti in essere alla data indicata"));
return true;
}
else
{
TString16 tmp;
tmp << codcont;
dmsk.set(F_LVCODCONT, tmp);
}
TDocumento& doc = dmsk.doc();
doc.put(DOC_CODCONT, codcont);
return true;
}
//LV_BOLLA_HANDLER: handler di bolla, carica le righe contratto sulle bolle, preparando la struttura del documento
bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
{
bool ok = true;
switch(f.dlg())
{
case F_CODCF: ok = TDocumento_mask::clifo_handler( f, k ); break;
default: break;
}
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
TSheet_field& sheet = dmsk.sfield(F_SHEET);
if (ok && k == K_TAB && ((dmsk.insert_mode() && f.to_check(k, true)) || f.focusdirty()))
@ -664,6 +714,10 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
if (codart.full())
{
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&) msk.get_sheet()->mask();
TSheet_field* sheet = msk.get_sheet();
TRiga_documento& rdoc = dmsk.doc()[sheet->selected()+1];
rdoc.put(RDOC_CODART, codart);
//recupero dal documento i dati di interesse per recuperare...
//...i dati dalla riga contratto
@ -682,10 +736,21 @@ bool TGestione_bolle_msk::lv_codart_handler(TMask_field& f, KEY k)
{
TConfig* configlv = new TConfig(CONFIG_DITTA,"lv");
causale = configlv->get("CAUSLAV");
}
if (rdoc.get("DOTOD").empty())
{
//gestione campi dotazione odierna e dotazione temporanea
TGiac_per_cli& giac = gbapp().giacenza();
giac.preset(dmsk.doc());
real dotod = giac.giac_att(rdoc, true);
rdoc.put("DOTOD", dotod);
TString16 tmp;
tmp << dotod;
msk.field(FR_JOLLY1).set(tmp);
}
TSheet_field* sheet = msk.get_sheet();
TRiga_documento& rdoc = dmsk.doc()[sheet->selected()+1];
if (rdoc.get(RDOC_CODAGG1).empty())
msk.set(FR_CODAGG1, causale);
@ -1002,7 +1067,9 @@ void TGestione_bolle_msk::user_set_handler( short fieldid, int index)
{
switch(index)
{
case 4101: set_field_handler(fieldid, lv_bolla_handler); break;
case 4101: set_field_handler(fieldid, lv_data_handler); break;
case 4102: set_field_handler(fieldid, lv_contratto_handler); break;
case 4103: set_field_handler(fieldid, lv_bolla_handler); break;
default : TDocumento_mask::user_set_handler(fieldid, index); break;
}
}

View File

@ -31,7 +31,7 @@ Title(7)=Totali
// CODCF = S_OBBLIGATORIO
// RAGSOC = S_NORMALE
// RICALT = S_NORMALE
OCCASEDIT = S_NORMALE //100
OCCASEDIT = S_DISABILITATO //100
OCFPI = S_DISABILITATO //100
COFI = S_NON_VISIBILE //100
STATOPAIV = S_NON_VISIBILE //100
@ -161,9 +161,28 @@ CODCMS = S_NORMALE //3000
DESCRCMS = S_NORMALE //3000
FASCMS = S_NORMALE //3000
DESCRFAS = S_NORMALE //3000
BLANK = S_DISABILITATO //4000
CODNOTE = S_NORMALE //2500
NOTECLI = S_NOCHECK //2500
LVGROUP = S_NORMALE //4041
LVCODNUM = S_NORMALE //4041
LVDESNUM = S_NORMALE //4041
LVSTATO = S_NORMALE //4041
LVPROVV = S_NORMALE //4041
LVTIPODOC = S_NORMALE //4041
LVDESTIPODOC = S_NORMALE //4041
LVNDOC = S_NORMALE //4041
LVANNO = S_NORMALE //4041
LVDATADOC = S_NORMALE //4041
LVGIORNO = S_NORMALE //4041
LVSETTIMANA = S_NORMALE //4041
LVTIPOCF = S_NORMALE //4041
LVCODCF = S_NORMALE //4041
LVRICALT = S_NORMALE //4041
LVCODCONT = S_NORMALE //4041
LVRAGSOC = S_NORMALE //4041
LVCODCAU = S_NORMALE //4041
LVDESCAU = S_NORMALE //4041
BLANK = S_DISABILITATO //4000
[DEFAULT]
Default(0)=F_CAUSTRASP|VEN
@ -179,8 +198,8 @@ Col(6)=FR_CAULAV|Caus.|5
Col(7)=FR_RITIRO|Ritiro|6
Col(8)=FR_QTA|Cons.|6
Col(9)=FR_PREZZO||6
Col(10)=FR_JOLLY1|Dotaz.|7
Col(11)=FR_JOLLY2|D.Temp.|7
Col(10)=FR_JOLLY1@R|Dotaz.|7
Col(11)=FR_JOLLY2@R|D.Temp.|7
Col(12)=FR_JOLLY3|Inizio|10
Col(13)=FR_JOLLY4|Fine|10
Col(14)=FR_UMQTA
@ -202,9 +221,13 @@ Col(27)=FR_TIPORIGA|Tipo|4
Tipo(0)=21
Tipo(1)=05
[HANDLERS]
Handler(0) = 106|4101
Handler(1) = 108|4102
[PROFILOGRUPPO]
101 = S_NASCOSTO
100 = S_NORMALE
100 = S_NASCOSTO
200 = S_NORMALE
300 = S_NORMALE
400 = S_NORMALE
@ -239,18 +262,19 @@ Tipo(1)=05
2900 = S_NORMALE
3000 = S_NORMALE
4000 = S_NORMALE
4041 = S_NORMALE
[ORDINEGRUPPI]
NGROUPS=22
1=100
2=SHEET
3=2500
4=200
5=300
6=400
7=600
8=800
9=830
NGROUPS=23
1=4041
2=830
3=SHEET
4=2500
5=200
6=300
7=400
8=600
9=800
10=900
11=1100
12=1200
@ -264,6 +288,7 @@ NGROUPS=22
20=2710
21=1700
22=2900
23=100
[Colors]
RuleName(1) = Riga vuota
@ -273,4 +298,4 @@ FgCol(1) = 0,0,0
RuleName(2) = Dotazione scaduta
Rule(2) = (ADATATMP!="")&&(ANSI(33.DATADOC)>ANSI(ADATATMP))|N
BgCol(2) = 255,0,0
FgCol(2) = 0,0,0
FgCol(2) = 0,0,0

View File

@ -199,7 +199,7 @@ Col(7)=FR_RITIRO|Ritiro|6
Col(8)=FR_QTA|Cons.|6
Col(9)=FR_PREZZO||6
Col(10)=FR_JOLLY1@R|Dotaz.|7
Col(11)=FR_JOLLY2|D.Temp.|7
Col(11)=FR_JOLLY2@R|D.Temp.|7
Col(12)=FR_JOLLY3|Inizio|10
Col(13)=FR_JOLLY4|Fine|10
Col(14)=FR_UMQTA
@ -223,8 +223,8 @@ Tipo(1)=05
[HANDLERS]
Handler(0) = 106|4101
Handler(1) = 108|4101
Handler(2) = 125|4101
Handler(1) = 108|4103
Handler(2) = 125|4103
[PROFILOGRUPPO]
101 = S_NASCOSTO