Patch level : 10.0

Files correlati     : lv3, lvbollac.msk (+velib06)
Ricompilazione Demo : [ ]
Commento            :
0001136: Colori righe bolle (1)
Descrizione 	Si chiede di colorare (per esempio in giallo) le righe bolla che hanno Consegnato e Ritirato entrambe a zero

0001137: Colori righe bolle (2)
Descrizione 	Si chiede di colorare (per esempio in rosso) le righe bolla che hanno Dotazione temporanea maggiore di zero se la data documento è maggiore della data di scadenza della dotazione temporanea


git-svn-id: svn://10.65.10.50/trunk@18224 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca83 2009-02-09 13:34:58 +00:00
parent c60f5f27ce
commit 46d63d894b
4 changed files with 88 additions and 15 deletions

View File

@ -8,6 +8,7 @@
#include "lvlib.h"
#include "lvcondv.h"
#include "lvrcondv.h"
#include "lvrconsplan.h"
#include "../mg/clifogiac.h"
////////////////////////////////////
@ -236,6 +237,7 @@ protected:
static bool lv_consegnato_handler(TMask_field& f, KEY k);
static bool lv_codart_handler(TMask_field& f, KEY k);
static bool lv_causale_handler(TMask_field& f, KEY k);
static bool lv_dotmp_handler(TMask_field& f, KEY k);
static bool ss_notify(TSheet_field& ss, int r, KEY key);
@ -335,7 +337,7 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)f.mask();
TDate oggi(TODAY);
if (!dmsk.field(F_DATADOC).enabled() && dmsk.insert_mode())
if (dmsk.insert_mode())
dmsk.set(F_DATADOC,oggi);
TSheet_field& sheet = dmsk.sfield(F_SHEET);
@ -410,6 +412,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
//instanzio una cache sulle anagrafice di magazzino
const TRectype& anamag = cache().get(LF_ANAMAG,codart);
//instanzio in TRecordset sui giri
TISAM_recordset giri("USE LVRCONSPLAN KEY 3\nSELECT DTCONS>#DATADOC\nFROM CODCF=#CODCF CODCONT=#CODCONT\nTO CODCF=#CODCF CODCONT=#CODCONT");
giri.set_var("#DATADOC", datadoc);
giri.set_var("#CODCF", codcf);
giri.set_var("#CODCONT", codcont);
giri.move_first();
rdoc.put(RDOC_CODART,codart);
rdoc.put(RDOC_CODARTMAG,codart);
rdoc.put(RDOC_CHECKED,'X');
@ -418,6 +427,13 @@ bool TGestione_bolle_msk::lv_bolla_handler(TMask_field& f, KEY k)
rdoc.put(RDOC_CODAGG1,causale);
rdoc.put(RDOC_CODIVA,anamag.get(ANAMAG_CODIVA));
//setto le date di inizio e fine della dotazione temporanea
rdoc.put("DADATATMP", rcont.get(LVRCONDV_INDTTMP).as_date());
if (rcont.get(LVRCONDV_FIDTTMP).as_date() < datadoc)
rdoc.put("ADATATMP", rcont.get(LVRCONDV_FIDTTMP).as_date());
else
rdoc.put("ADATATMP", giri.get(LVRCONSPLAN_DTCONS).as_date());
//elaborazione per il prezzo: o lo prendo dalle righe contratto, o dall'anagrafica magazzino
const TString& sconto = rcont.get(LVRCONDV_SCONTPERC).as_string();
rdoc.put(RDOC_SCONTO, sconto);
@ -657,6 +673,40 @@ bool TGestione_bolle_msk::lv_causale_handler(TMask_field& f, KEY k)
return true;
}
//LV_DOTMP_HANDLER: handler che aggiorna la data di fine dotazione temporanea sul contratto se l'utente lo richiede
bool TGestione_bolle_msk::lv_dotmp_handler(TMask_field& f, KEY k)
{
if (f.to_check(k, true))
{
TDate finetmp = f.get();
TMask& msk = f.mask();
TSheet_field* sheet = msk.get_sheet();
TGestione_bolle_msk& dmsk = (TGestione_bolle_msk&)sheet->mask();
if (!finetmp.empty() && finetmp > msk.get_date(F_DATADOC) &&
yesno_box(TR("La data di fine dotazione temporanea è diversa da quella presente sul contratto."
"Si desidera aggiornarla con quella attuale?")))
{
//ricerco la riga contratto che mi interessa
const long codcf = dmsk.get_long(F_CODCF);
const int indsped = dmsk.get_int(F_CODINDSP);
const TDate datadoc = dmsk.get_date(F_DATADOC);
TLaundry_contract cont(codcf,indsped,datadoc);
TLocalisamfile rcondv(LF_LVRCONDV);
rcondv.put(LVRCONDV_CODCF,codcf);
rcondv.put(LVRCONDV_CODCONT,cont.get_int(LVCONDV_CODCONT));
rcondv.put(LVRCONDV_CODART,msk.get(FR_CODART));
if (rcondv.read() == NOERR)
{
rcondv.put(LVRCONDV_FIDTTMP, finetmp);
rcondv.rewrite();
}
}
}
return true;
}
//metodo che setta gli handler sui campi di riga
void TGestione_bolle_msk::user_set_row_handler(TMask& rm, short field, int index)
{
@ -666,6 +716,7 @@ void TGestione_bolle_msk::user_set_row_handler(TMask& rm, short field, int index
case 4102: rm.set_handler(field, lv_consegnato_handler); break;
case 4103: rm.set_handler(field, lv_codart_handler); break;
case 4104: rm.set_handler(field, lv_causale_handler); break;
case 4105: rm.set_handler(field, lv_dotmp_handler); break;
default : TDocumento_mask::user_set_row_handler(rm, field, index); break;
}
}

View File

@ -30,7 +30,7 @@ Title(7)=Totali
// TIPOCF = S_NORMALE
// CODCF = S_OBBLIGATORIO
// RAGSOC = S_NORMALE
//RICALT = S_NORMALE
// RICALT = S_NORMALE
OCCASEDIT = S_NORMALE //100
OCFPI = S_DISABILITATO //100
COFI = S_NON_VISIBILE //100
@ -181,19 +181,21 @@ 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(12)=FR_UMQTA
Col(13)=FR_SCONTO
Col(14)=FR_PERCPROV
Col(15)=FR_CODIVA
Col(16)=FR_NCOLLI
Col(17)=FR_PNETTO
Col(18)=FR_TARA
Col(19)=FR_CAUS
Col(20)=FR_CODMAGC
Col(21)=FR_CODDEPC
Col(22)=FR_CODMAG
Col(23)=FR_CODDEP
Col(24)=FR_TIPORIGA|Tipo|4
Col(12)=FR_JOLLY3|Inizio|10
Col(13)=FR_JOLLY4|Fine|10
Col(14)=FR_UMQTA
Col(15)=FR_SCONTO
Col(16)=FR_PERCPROV
Col(17)=FR_CODIVA
Col(18)=FR_NCOLLI
Col(19)=FR_PNETTO
Col(20)=FR_TARA
Col(21)=FR_CAUS
Col(22)=FR_CODMAGC
Col(23)=FR_CODDEPC
Col(24)=FR_CODMAG
Col(25)=FR_CODDEP
Col(26)=FR_TIPORIGA|Tipo|4
[RIGHE]
Tipo(0)=21
@ -267,3 +269,12 @@ NGROUPS=22
21=1700
22=2900
[Colors]
RuleName(1) = Dotazione scaduta
Rule(1) = (ADATATMP!="")&&(ANSI(33.DATADOC)>ANSI(ADATATMP))|N
BgCol(1) = 255,0,0
FgCol(1) = 0,0,0
RuleName(2) = Riga vuota
Rule(2) = STR(TIPORIGA!="05")&&(QTA==0)&&(QTAGG1==0)|N
BgCol(2) = 255,255,128
FgCol(2) = 0,0,0

View File

@ -7,4 +7,14 @@ STRING FR_JOLLY2 5
BEGIN
PROMPT 20 13 "Dot.temp "
FIELD DOTMP
END
DATE FR_JOLLY3
BEGIN
PROMPT 36 13 "Inizio "
FIELD DADATATMP
END
DATE FR_JOLLY4
BEGIN
PROMPT 54 13 "Fine "
FIELD ADATATMP
END

View File

@ -10,3 +10,4 @@ NHANDLER = 4
2 = 112|4102
3 = 105|4103
4 = 152|4104
5 = 158|4105