Patch level :10.0

Files correlati     :
Ricompilazione Demo : [ ]
Commento            :
personalizzazione crpa in corso


git-svn-id: svn://10.65.10.50/trunk@20389 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-04-28 15:51:27 +00:00
parent 201943a883
commit 6145fc296c
3 changed files with 189 additions and 24 deletions

View File

@ -103,14 +103,19 @@ class TVariazione_budget_mask : public TAutomask
protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
int load();
int load(); //(costruttore e on_field) carica i dati per riempire lo sheet
bool one_checked() const; //(on_field) controlla se nella colonna dei check ce ne è almeno 1 checkato
void check_all(const bool checked); //(on_field) checka-dechecka la colonna dei check
int find_sister_rows(const int curr_sister, int& first_sister, int& last_sister, const bool by_numreg = false); //(on_field) trova le righe..
//..con la stessa chiave della riga corrente e della chiave selezionata
void build_key(int i, TToken_string& key); //(find_sister_rows) crea la chiave cdc/fase/conto della riga con cui cercare le sorelle
void build_key_by_numreg(int i, TToken_string& key); //(find_sister_rows) crea la chiave numreg della riga con cui cercare le sorelle
void sistema_date_cms(TDate& datainicms, TDate& datafinecms);
void aggiorna_saldi_preventivi(TSheet_field& sf_righe, const int curr_riga); //(load()) crea i saldi preventivi in base agli importi
bool save_commessa(); //(save()) salva i cambiamenti di date della commessa esaminata
bool save_sheet(); //(save()) salva i cambiamenti nello sheet
bool save(); //(on_field) gestisce l'ordine dei salvataggi
@ -229,6 +234,14 @@ int TVariazione_budget_mask::find_sister_rows(const int curr_sister, int& first_
}
void TVariazione_budget_mask::sistema_date_cms(TDate& datainicms, TDate& datafinecms)
{
datainicms = get_date(F_DATAINICMS);
datafinecms = get_date(F_DATAPRORCMS);
if (!datafinecms.ok())
datafinecms = get_date(F_DATAFINECMS);
}
bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
{
switch (o.dlg())
@ -262,17 +275,28 @@ bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e,
}
break;
case S_DATACOMP:
if (e == fe_modify)
{
TDate datainicms, datafinecms;
sistema_date_cms(datainicms, datafinecms);
const TDate datacomp = o.get();
if (datacomp < datainicms || (datafinecms.ok() && datacomp > datafinecms))
return error_box("La data competenza deve rientrare nella durata della commessa!");
}
_dirty = true;
break;
case S_DATAFCOMP:
if (e == fe_modify)
{
const TDate datainicms = get_date(F_DATAINICMS);
TDate datafinecms = get_date(F_DATAPRORCMS);
if (!datafinecms.ok())
datafinecms = get_date(F_DATAFINECMS);
const TDate data = o.get();
if (data < datainicms || (datafinecms.ok() && data > datafinecms))
return error_box("Le date competenza devono rientrare nella durata della commessa!");
const TDate datafcomp = o.get();
if (datafcomp.ok())
{
TDate datainicms, datafinecms;
sistema_date_cms(datainicms, datafinecms);
if (datafinecms.ok() && datafcomp > datafinecms)
return error_box("La data fine competenza non può superare la data fine commessa!");
}
_dirty = true;
}
break;
@ -290,6 +314,42 @@ bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e,
}
break;
case S_SO:
if (e == fe_init)
{
TMask& m = o.mask(); //mascehra di riga
const TString& contone = m.get(S_CONTO);
m.set(S_GR, contone.left(3));
m.set(S_CO, contone.mid(3,3));
m.set(S_SO, contone.mid(6,6));
}
if (e == fe_modify || e == fe_close)
{
TMask& m = o.mask(); //mascehra di riga
TString16 contone;
contone << m.get(S_GR) << m.get(S_CO) << m.get(S_SO);
m.set(S_CONTO, contone);
//setta anche il valore di cos/ric
TAnal_bill zione(contone, m.get(S_CDC), get(F_CODCMS), m.get(S_FASE));
const int indbillone = zione.indicatore_bilancio();
const char* str_indbillone = indbillone == 3 ? "C" : "R";
m.set(S_COSRIC, str_indbillone);
//solo in chiusura di riga ricalcola il saldo consuntivo
if (e == fe_close)
{
const TDate dataini, datafin;
//recupera il saldo finale consuntivo! in base alla chiave cms/cdc/fase/conto e lo mette nel campo consuntivo
const TSaldanal& saldanal_cons = ca_saldo(zione, dataini, datafin, _saldanal_consuntivo | _saldanal_ultima_imm);
TImporto saldo_cons = saldanal_cons._fin;
saldo_cons.normalize(indbillone == 3 ? 'D' : 'A');
const real saldo_cons_valore = saldo_cons.valore();
m.set(S_MATURATO, saldo_cons_valore);
}
}
break;
//bottoni
case DLG_CANCEL:
if (e == fe_button && jolly == 0) //jolly serve per specificare che è il DLG_CANCEL della maschera principale

View File

@ -34,3 +34,10 @@
#define S_NUMRIG 114
#define S_TIPOMOV 115
#define S_CDC_DESCR 142
#define S_FASE_DESCR 143
#define S_GR 144
#define S_CO 145
#define S_SO 146
#define S_CONTO_DESCR 147

View File

@ -178,7 +178,7 @@ ENDMASK
/////////////////////////////////////////
//maschera di riga
PAGE "Riga analitica" -1 -1 70 16
PAGE "Riga analitica" -1 -1 74 18
BOOLEAN S_CHECK
BEGIN
@ -188,60 +188,158 @@ END
STRING S_CDC 4
BEGIN
PROMPT 1 2 "Sede "
FLAGS "L"
USE LF_CDC
INPUT CODCOSTO S_CDC
DISPLAY "Sede" CODCOSTO
DISPLAY "Descrizione@50" DESCRIZ
OUTPUT S_CDC CODCOSTO
OUTPUT S_CDC_DESCR DESCRIZ
CHECKTYPE REQUIRED
FLAGS "D"
GROUP 1
END
STRING S_CDC_DESCR 50
BEGIN
PROMPT 20 2 ""
USE LF_CDC KEY 2
INPUT DESCRIZ S_CDC_DESCR
DISPLAY "Descrizione@50" DESCRIZ
DISPLAY "Sede" CODCOSTO
COPY OUTPUT S_CDC
FLAGS "D"
GROUP 1
END
STRING S_FASE 5
BEGIN
PROMPT 1 3 "Fase "
FLAGS "L"
USE LF_FASI
INPUT CODCMSFAS -F_CODCMS SELECT
INPUT CODFASE S_FASE
DISPLAY "Fase@10" CODFASE
DISPLAY "Descrizione@50" DESCRIZ
OUTPUT S_FASE CODFASE
OUTPUT S_FASE_DESCR DESCRIZ
CHECKTYPE NORMAL
FLAGS "D"
GROUP 1
END
STRING S_CONTO 12
STRING S_FASE_DESCR 50
BEGIN
PROMPT 20 3 ""
FLAGS "D"
GROUP 1
END
NUMBER S_GR 3
BEGIN
PROMPT 1 4 "Conto "
FLAGS "L"
FLAGS "DZ"
END
NUMBER S_CO 3
BEGIN
PROMPT 16 4 ""
FLAGS "DZ"
END
NUMBER S_SO 6
BEGIN
PROMPT 21 4 ""
USE LF_PCON SELECT SOTTOCONTO!=""
INPUT GRUPPO S_GR
INPUT CONTO S_CO
INPUT SOTTOCONTO S_SO
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
DISPLAY "Descrizione@50" DESCR
OUTPUT S_GR GRUPPO
OUTPUT S_CO CONTO
OUTPUT S_SO SOTTOCONTO
OUTPUT S_CONTO_DESCR DESCR
CHECKTYPE REQUIRED
FLAGS "GDZ"
GROUP 1
END
STRING S_CONTO_DESCR 50 40
BEGIN
PROMPT 30 4 ""
USE LF_PCON KEY 2
INPUT DESCR S_CONTO_DESCR
DISPLAY "Descrizione@50" DESCR
DISPLAY "Gruppo" GRUPPO
DISPLAY "Conto" CONTO
DISPLAY "Sottoconto" SOTTOCONTO
COPY OUTPUT S_SO
GROUP 1
FLAGS "GD"
END
NUMBER S_CONTO 12
BEGIN
PROMPT 1 50 "Conto completo"
//coordinate fuori schermo per non vederlo
FLAGS "ZD"
END
TEXT DLG_NULL
BEGIN
PROMPT 1 5 "@bDate Competenza"
END
DATE S_DATACOMP
BEGIN
PROMPT 1 5 "Ini.compet."
PROMPT 1 6 "Inizio "
CHECKTYPE REQUIRED
END
BOOLEAN S_AUTOFCOMP
BEGIN
PROMPT 1 6 "AutoCompet."
PROMPT 34 6 "Automatica"
END
DATE S_DATAFCOMP
BEGIN
PROMPT 1 7 "Fin.compet."
PROMPT 53 6 "Fine "
VALIDATE DATE_CMP_FUNC >= F_DATACOMP
END
TEXT DLG_NULL
BEGIN
PROMPT 1 7 "@bImporto riga"
END
STRING S_COSRIC 1
BEGIN
PROMPT 1 8 "Csti/Ricavi"
FLAGS "L"
FLAGS "D"
CHECKTYPE REQUIRED
END
NUMBER S_IMPORTO 15 2
BEGIN
PROMPT 1 9 "Importo "
PROMPT 18 8 "Importo "
END
TEXT DLG_NULL
BEGIN
PROMPT 1 9 "@bSaldi (ad ultima immissione)"
END
NUMBER S_PREVENTIVO 15 2
BEGIN
PROMPT 1 10 "Preventivo "
FLAGS "L"
FLAGS "D"
END
NUMBER S_MATURATO 15 2
BEGIN
PROMPT 1 11 "Maturato "
FLAGS "L"
PROMPT 34 10 "Maturato "
FLAGS "D"
END
STRING S_DESCR 50
@ -252,7 +350,7 @@ END
NUMBER S_NUMREG 7
BEGIN
PROMPT 1 13 "N. reg. "
FLAGS "GL"
FLAGS "GD"
MESSAGE EMPTY ENABLE,1@
MESSAGE DISABLE,1@
END
@ -260,13 +358,13 @@ END
NUMBER S_NUMRIG 3
BEGIN
PROMPT 1 14 "Num. riga "
FLAGS "L"
FLAGS "D"
END
STRING S_TIPOMOV 1
BEGIN
PROMPT 1 15 "Tipo mov. "
FLAGS "L"
FLAGS "D"
END
ENDPAGE