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:
parent
201943a883
commit
6145fc296c
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user