Patch level :10.0

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


git-svn-id: svn://10.65.10.50/trunk@20367 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
luca 2010-04-21 15:41:43 +00:00
parent 21f1a81ccd
commit 837c74f740
3 changed files with 261 additions and 66 deletions

View File

@ -1,5 +1,6 @@
#include <applicat.h> #include <applicat.h>
#include <automask.h> #include <automask.h>
#include <config.h>
#include <progind.h> #include <progind.h>
#include <recarray.h> #include <recarray.h>
#include <textset.h> #include <textset.h>
@ -17,16 +18,32 @@
/////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////
class TVariazione_budget_mask : public TAutomask class TVariazione_budget_mask : public TAutomask
{ {
bool _dirty;
protected: protected:
virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly); virtual bool on_field_event(TOperable_field& o, TField_event e, long jolly);
void carica_rmovana();
int carica_rmovana();
bool one_checked() const; //controlla se nella colonna dei check ce ne è almeno 1 checkato (on_field)
void check_all(const bool checked); //checka-dechecka la colonna dei check (on_field)
public: public:
TVariazione_budget_mask(); TVariazione_budget_mask();
~TVariazione_budget_mask();
}; };
TVariazione_budget_mask::TVariazione_budget_mask() :TAutomask ("ps1001300a") TVariazione_budget_mask::TVariazione_budget_mask() :TAutomask ("ps1001300a")
{ {
//carica la causale che trova nel ditta.ini
TConfig ditta_ini(CONFIG_DITTA, "ps1001");
set(F_CODCAUS, ditta_ini.get("CodCaus"));
}
TVariazione_budget_mask::~TVariazione_budget_mask()
{
//salva nel ditta.ini la causale sulla maschera
TConfig ditta_ini(CONFIG_DITTA, "ps1001");
ditta_ini.set("CodCaus", get(F_CODCAUS));
} }
bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e, long jolly)
@ -34,9 +51,36 @@ bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e,
switch (o.dlg()) switch (o.dlg())
{ {
case F_CODCMS: case F_CODCMS:
{
if (e == fe_modify) if (e == fe_modify)
carica_rmovana(); {
bool e = carica_rmovana() == 0;
o.enable(e);
enable(F_DESCRIZ, e);
}
break;
case F_DATAINICMS:
case F_DATAFINECMS:
if (e == fe_modify)
_dirty = true;
break;
case DLG_CANCEL:
if (e == fe_button)
{
if (_dirty)
{
//chiede se salvare
}
enable(F_CODCMS);
enable(F_DESCRIZ);
sfield(F_RIGHE).destroy();
_dirty = false;
return false;
}
break;
case DLG_CHECKALL:
if (e == fe_button)
{
check_all(!one_checked());
} }
break; break;
default: default:
@ -46,7 +90,31 @@ bool TVariazione_budget_mask::on_field_event(TOperable_field& o, TField_event e,
} }
void TVariazione_budget_mask::carica_rmovana() //controlla sulla colonna delle spunte se almeno una è checkata
bool TVariazione_budget_mask::one_checked() const
{
TSheet_field& sf_righe = sfield(F_RIGHE);
FOR_EACH_SHEET_ROW(sf_righe, i, riga)
{
if (riga->get_char(0) > ' ')
return true;
}
return false;
}
//checka-dechecka la colonna di spunte dello sheet
void TVariazione_budget_mask::check_all(const bool checked)
{
TSheet_field& sf_righe = sfield(F_RIGHE);
FOR_EACH_SHEET_ROW(sf_righe, i, riga)
riga->add(checked ? "X" : "", 0);
sf_righe.force_update();
}
int TVariazione_budget_mask::carica_rmovana()
{ {
TString query; TString query;
query << "USE RMOVANA KEY 4\n"; query << "USE RMOVANA KEY 4\n";
@ -77,11 +145,11 @@ void TVariazione_budget_mask::carica_rmovana()
//chiave iniziale di riga //chiave iniziale di riga
const TString& cdc = rmovana.get(RMOVANA_CODCCOSTO).as_string(); const TString& cdc = rmovana.get(RMOVANA_CODCCOSTO).as_string();
row.add(cdc, 0); row.add(cdc, 1);
const TString& fase = rmovana.get(RMOVANA_CODFASE).as_string(); const TString& fase = rmovana.get(RMOVANA_CODFASE).as_string();
row.add(fase, 1); row.add(fase, 2);
const TString& conto = rmovana.get(RMOVANA_CODCONTO).as_string(); const TString& conto = rmovana.get(RMOVANA_CODCONTO).as_string();
row.add(conto, 2); row.add(conto, 3);
//date competenza iniziale e finale //date competenza iniziale e finale
const TDate datacomp = rmovana.get("MOVANA."MOVANA_DATACOMP).as_date(); const TDate datacomp = rmovana.get("MOVANA."MOVANA_DATACOMP).as_date();
@ -98,44 +166,46 @@ void TVariazione_budget_mask::carica_rmovana()
if (!datafcomp.ok()) if (!datafcomp.ok())
datafcomp = datacomp; datafcomp = datacomp;
row.add(datacomp, 3); row.add(datacomp, 4);
row.add(datafcomp, 4); row.add(autofcomp ? "X" : "", 5);
row.add(datafcomp, 6);
//costo o ricavo? all'indbil l'ardua sentenza! //costo o ricavo? all'indbil l'ardua sentenza!
TAnal_bill bill(conto, cdc, cms, fase); TAnal_bill bill(conto, cdc, cms, fase);
const int indbil = bill.indicatore_bilancio(); const int indbil = bill.indicatore_bilancio();
const char* str_indbil = indbil == 3 ? "C" : "R"; const char* str_indbil = indbil == 3 ? "C" : "R";
row.add(str_indbil, 5); row.add(str_indbil, 7);
real valore = rmovana.get(RMOVANA_IMPORTO).as_real(); real valore = rmovana.get(RMOVANA_IMPORTO).as_real();
const char sezione = rmovana.get(RMOVANA_SEZIONE).as_string()[0]; const char sezione = rmovana.get(RMOVANA_SEZIONE).as_string()[0];
TImporto importo(sezione, valore); TImporto importo(sezione, valore);
importo.normalize(indbil == 3 ? 'D' : 'A'); importo.normalize(indbil == 3 ? 'D' : 'A');
valore = importo.valore(); valore = importo.valore();
row.add(valore.string(), 6); row.add(valore.string(), 8);
//recupera il saldo finale in base alla chiave cms/cdc/fase/conto e lo mette nel campo consuntivo //recupera il saldo finale consuntivo! in base alla chiave cms/cdc/fase/conto e lo mette nel campo consuntivo
const TDate dataini, datafin; const TDate dataini, datafin;
const TSaldanal& saldanal = ca_saldo(bill, dataini, datafin, _saldanal_consuntivo | _saldanal_ultima_imm); const TSaldanal& saldanal = ca_saldo(bill, dataini, datafin, _saldanal_consuntivo | _saldanal_ultima_imm);
TImporto saldo_finale = saldanal._fin; TImporto saldo_finale = saldanal._fin;
saldo_finale.normalize(indbil == 3 ? 'D' : 'A'); saldo_finale.normalize(indbil == 3 ? 'D' : 'A');
const real saldo_finale_valore = saldo_finale.valore(); const real saldo_finale_valore = saldo_finale.valore();
row.add(saldo_finale_valore.string(), 7); row.add(saldo_finale_valore.string(), 9);
//completa la riga //completa la riga
row.add(rmovana.get(RMOVANA_DESCR).as_string(), 8); row.add(rmovana.get(RMOVANA_DESCR).as_string(), 10);
row.add(rmovana.get(RMOVANA_NUMREG).as_int(), 9); row.add(rmovana.get(RMOVANA_NUMREG).as_int(), 11);
row.add(rmovana.get(RMOVANA_NUMRIG).as_int(), 10); row.add(rmovana.get(RMOVANA_NUMRIG).as_int(), 12);
const TString& tipomov = rmovana.get("MOVANA."MOVANA_TIPOMOV).as_string(); const TString& tipomov = rmovana.get("MOVANA."MOVANA_TIPOMOV).as_string();
row.add(tipomov, 11); row.add(tipomov, 13);
//disabilita tutti i campi ma non l'intera riga, perchè deve poter cliccare sul numero riga.. //disabilita tutti i campi ma non l'intera riga, perchè deve poter cliccare sul numero riga..
//..per procedere alle operazioni di pareggio //..per procedere alle operazioni di pareggio
if (tipomov != "V") //if (tipomov != "V")
sf_righe.disable_cell(sf_righe.items() - 1, -1); //sf_righe.disable_cell(sf_righe.items() - 1, -1);
} }
sf_righe.force_update(); sf_righe.force_update();
return sf_righe.items();
} }
/////////////////////////////////////// ///////////////////////////////////////

View File

@ -1,19 +1,32 @@
//campi ps1001300a.uml //campi ps1001300a.uml
#define F_CODCMS 201 #define F_CODCMS 201
#define F_DESCRIZ 202 #define F_DESCRIZ 202
#define F_RIGHE 210 #define F_DATAINICMS 203
#define F_DATAFINECMS 204
#define F_PROROGATA 205
#define F_DATAPRORCMS 206
#define F_DATAREG 207
#define F_CODCAUS 208
#define F_DESCAUS 209
#define F_RIGHE 220
//bottoni
#define DLG_CHECKALL 250
//campi dello sheet //campi dello sheet
#define F_CDC 101 #define S_CHECK 101
#define F_FASE 102 #define S_CDC 102
#define F_CONTO 103 #define S_FASE 103
#define F_DATACOMP 104 #define S_CONTO 104
#define F_DATAFCOMP 105 #define S_DATACOMP 105
#define F_COSRIC 106 #define S_AUTOFCOMP 106
#define F_IMPORTO 107 #define S_DATAFCOMP 107
#define F_MATURATO 108 #define S_COSRIC 108
#define F_DESCR 109 #define S_IMPORTO 109
#define F_NUMREG 110 #define S_MATURATO 110
#define F_NUMRIG 111 #define S_DESCR 111
#define F_TIPOMOV 112 #define S_NUMREG 112
#define S_NUMRIG 113
#define S_TIPOMOV 114

View File

@ -1,26 +1,68 @@
#include "ps1001300a.h" #include "ps1001300a.h"
TOOLBAR "" 0 0 0 2 TOOLBAR "" 0 0 0 2
#include <stdbar.h>
BUTTON DLG_SAVEREC 2 2
BEGIN
PROMPT 1 1 "~Salva"
PICTURE TOOL_SAVEREC
END
BUTTON DLG_NULL 4 2
BEGIN
PROMPT 2 1 ""
PICTURE 0
END
BUTTON DLG_CHECKALL 2 2
BEGIN
PROMPT 3 1 "~Tutti"
PICTURE TOOL_MULTISEL
END
BUTTON DLG_NULL 4 2
BEGIN
PROMPT 2 1 ""
PICTURE 0
END
//allinea alla dataini
//allinea alla data fine
BUTTON DLG_NULL 4 2
BEGIN
PROMPT 2 1 ""
PICTURE 0
END
#include <cancelbar.h>
ENDPAGE ENDPAGE
PAGE "Variazione Budget" 0 2 0 0 PAGE "Variazione Budget" 0 2 0 0
GROUPBOX DLG_NULL 78 4
BEGIN
PROMPT 0 0 "@bCommessa"
END
STRING F_CODCMS 20 STRING F_CODCMS 20
BEGIN BEGIN
PROMPT 1 1 "Commessa " PROMPT 1 1 ""
USE LF_COMMESSE USE LF_COMMESSE
INPUT CODCMS F_CODCMS INPUT CODCMS F_CODCMS
DISPLAY "Codice@20" CODCMS DISPLAY "Codice@20" CODCMS
DISPLAY "Descrizione@50" DESCRIZ DISPLAY "Descrizione@50" DESCRIZ
OUTPUT F_CODCMS CODCMS OUTPUT F_CODCMS CODCMS
OUTPUT F_DESCRIZ DESCRIZ OUTPUT F_DESCRIZ DESCRIZ
OUTPUT F_DATAINICMS DATAINIZIO
OUTPUT F_DATAFINECMS DATAFINE
OUTPUT F_PROROGATA PROROGA
OUTPUT F_DATAPRORCMS DATAPROR
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
STRING F_DESCRIZ 50 44 STRING F_DESCRIZ 50
BEGIN BEGIN
PROMPT 34 1 "" PROMPT 25 1 ""
USE LF_COMMESSE KEY 2 USE LF_COMMESSE KEY 2
INPUT DESCRIZ F_DESCRIZ INPUT DESCRIZ F_DESCRIZ
DISPLAY "Descrizione@50" DESCRIZ DISPLAY "Descrizione@50" DESCRIZ
@ -29,18 +71,78 @@ BEGIN
CHECKTYPE REQUIRED CHECKTYPE REQUIRED
END END
DATE F_DATAINICMS
BEGIN
PROMPT 1 2 "Inizio "
END
DATE F_DATAFINECMS
BEGIN
PROMPT 22 2 "Fine "
END
BOOL F_PROROGATA
BEGIN
PROMPT 43 2 "Prorogata"
MESSAGE FALSE CLEAR,F_DATAPRORCMS
MESSAGE ENABLE,F_DATAPRORCMS
END
DATE F_DATAPRORCMS
BEGIN
PROMPT 57 2 "Proroga "
END
GROUPBOX DLG_NULL 78 3
BEGIN
PROMPT 0 4 "@bParametri movimenti analitici da generare"
END
DATE F_DATAREG
BEGIN
PROMPT 1 5 "Data reg. "
CHECKTYPE REQUIRED
FLAGS "A"
END
STRINGA F_CODCAUS 3
BEGIN
PROMPT 24 5 "Causale "
USE LF_CAUSALI SELECT MOVIND!=''
INPUT CODCAUS F_CODCAUS
DISPLAY "Codice" CODCAUS
DISPLAY "Descrizione@50" DESCR
OUTPUT F_CODCAUS CODCAUS
OUTPUT F_DESCAUS DESCR
CHECKTYPE REQUIRED
FLAGS "U"
END
STRINGA F_DESCAUS 50 37
BEGIN
PROMPT 38 5 ""
USE LF_CAUSALI KEY 2 SELECT MOVIND!=''
INPUT DESCR F_DESCAUS
DISPLAY "Descrizione@50" DESCR
DISPLAY "Codice" CODCAUS
COPY OUTPUT F_CODCAUS
CHECKTYPE REQUIRED
END
TEXT -1 TEXT -1
BEGIN BEGIN
PROMPT 0 3 "@bRighe movimenti di budget" PROMPT 0 7 "@bRighe movimenti di budget"
END END
SPREADSHEET F_RIGHE SPREADSHEET F_RIGHE
BEGIN BEGIN
PROMPT 1 4 "Righe" PROMPT 1 8 "Righe"
ITEM "@1C"
ITEM "Sede@4" ITEM "Sede@4"
ITEM "Fase@5" ITEM "Fase@5"
ITEM "Conto@12" ITEM "Conto@12"
ITEM "Iniz comp." ITEM "Iniz comp."
ITEM "AC@C"
ITEM "Fine comp." ITEM "Fine comp."
ITEM "C/R" ITEM "C/R"
ITEM "Importo@15" ITEM "Importo@15"
@ -57,67 +159,77 @@ ENDMASK
///////////////////////////////////////// /////////////////////////////////////////
//maschera di riga //maschera di riga
PAGE "Riga analitica" -1 -1 70 14 PAGE "Riga analitica" -1 -1 70 15
STRING F_CDC 4 BOOLEAN S_CHECK
BEGIN BEGIN
PROMPT 1 1 "Sede " PROMPT 1 1 "Applica "
END END
STRING F_FASE 5 STRING S_CDC 4
BEGIN BEGIN
PROMPT 1 2 "Fase " PROMPT 1 2 "Sede "
END END
STRING F_CONTO 12 STRING S_FASE 5
BEGIN BEGIN
PROMPT 1 3 "Conto " PROMPT 1 3 "Fase "
END END
DATE F_DATACOMP STRING S_CONTO 12
BEGIN BEGIN
PROMPT 1 4 "Ini.comp " PROMPT 1 4 "Conto "
END END
DATE F_DATAFCOMP DATE S_DATACOMP
BEGIN BEGIN
PROMPT 1 5 "Fin.comp " PROMPT 1 5 "Ini.comp "
END END
STRING F_COSRIC 1 BOOLEAN S_AUTOFCOMP
BEGIN BEGIN
PROMPT 1 6 "Cst/Ric " PROMPT 1 6 "AutoComp "
END END
NUMBER F_IMPORTO 15 2 DATE S_DATAFCOMP
BEGIN BEGIN
PROMPT 1 7 "Importo " PROMPT 1 7 "Fin.comp "
END END
NUMBER F_MATURATO 15 2 STRING S_COSRIC 1
BEGIN BEGIN
PROMPT 1 8 "Maturato " PROMPT 1 8 "Cst/Ric "
END
NUMBER S_IMPORTO 15 2
BEGIN
PROMPT 1 9 "Importo "
END
NUMBER S_MATURATO 15 2
BEGIN
PROMPT 1 10 "Maturato "
FLAGS "L" FLAGS "L"
END END
STRING F_DESCR 50 STRING S_DESCR 50
BEGIN BEGIN
PROMPT 1 9 "Descr. " PROMPT 1 11 "Descr. "
END END
NUMBER F_NUMREG 7 NUMBER S_NUMREG 7
BEGIN BEGIN
PROMPT 1 10 "N. reg. " PROMPT 1 12 "N. reg. "
END END
NUMBER F_NUMRIG 3 NUMBER S_NUMRIG 3
BEGIN BEGIN
PROMPT 1 11 "N. riga " PROMPT 1 13 "N. riga "
END END
STRING F_TIPOMOV 1 STRING S_TIPOMOV 1
BEGIN BEGIN
PROMPT 1 12 "Tipo " PROMPT 1 14 "Tipo "
END END
ENDPAGE ENDPAGE