From c470dfa88eae9f5a03bee7abf3ff05fe19fe14a5 Mon Sep 17 00:00:00 2001 From: luca Date: Fri, 11 Dec 2009 11:24:01 +0000 Subject: [PATCH] Patch level :10.0 Files correlati : Ricompilazione Demo : [ ] Commento : stampa conti per commessa adattata anche a chi ha CA (e configurazione con UsePdcc=X); funziona anche su dinamica; muore selezionando la commessa AS08MB3INFITO git-svn-id: svn://10.65.10.50/trunk@19754 c028cbd2-c16b-5b4b-a496-9718f37d4682 --- ca/ca1800.cpp | 48 +++++++++++++++++++++++++++++++++++++----------- ca/ca1800a.h | 23 +++++++++++++---------- ca/ca1800a.uml | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+), 21 deletions(-) diff --git a/ca/ca1800.cpp b/ca/ca1800.cpp index 9416ae9d5..8aec3784f 100755 --- a/ca/ca1800.cpp +++ b/ca/ca1800.cpp @@ -27,6 +27,26 @@ public: TPrint_contixcms_mask::TPrint_contixcms_mask() : TAutomask("ca1800a") { + const bool has_ca = dongle().active(CAAUT); + //se la chiave ha CA mostra i campi gruppo 2 (codice e descrizione commessa).. + if (has_ca) + { + hide(-1); + show(-2); + //se le fasi sono figlie di nessuno può visualizzare il gruppo 3 (da fase a fase) + TConfig& cfg = ca_config(); + const TString& fath_fasi = cfg.get("FathFasi"); + if (fath_fasi.empty()) + show(-3); + else + hide(-3); + } + else //..se invece ha CM mostra i campi gruppo 1 (da cms a cms) e gruppo 3 (da fase a fase) + { + hide(-2); + show(-1); + show(-3); + } } bool TPrint_contixcms_mask::on_field_event(TOperable_field& o, TField_event e, long jolly) @@ -219,6 +239,7 @@ bool TPrint_contixcms_recordset::aggiungi_riga(TISAM_recordset& recset) class TPrint_contixcms : public TSkeleton_application { TPrint_contixcms_mask* _mask; + bool _has_ca; protected: virtual const char * extra_modules() const {return "cm";} //funziona anche con autorizzazione CM @@ -245,17 +266,24 @@ TPrint_contixcms_recordset* TPrint_contixcms::elabora() const //creazione della query per la creazione del recordset TString query; query << "USE RMOVANA KEY 3\n"; - query << "SELECT (BETWEEN(CODCMS,#DACODCMS,#ACODCMS))&&(BETWEEN(CODFASE,#DACODFASE,#ACODFASE))&&(BETWEEN(CODCONTO,#DACODCONTO,#ACODCONTO))\n"; - + if (_has_ca) + query << "SELECT (BETWEEN(CODCMS,#CODCMS,#CODCMS))&&(BETWEEN(CODCONTO,#DACODCONTO,#ACODCONTO))\n"; + else + query << "SELECT (BETWEEN(CODCMS,#DACODCMS,#ACODCMS))&&(BETWEEN(CODFASE,#DACODFASE,#ACODFASE))&&(BETWEEN(CODCONTO,#DACODCONTO,#ACODCONTO))\n"; query << "FROM DATACOMP=#DADATA\n"; query << "TO DATACOMP=#ADATA"; TISAM_recordset recset(query); - recset.set_var("#DACODCMS", TVariant(_mask->get(F_DACODCMS))); - recset.set_var("#ACODCMS", TVariant(_mask->get(F_ACODCMS))); - recset.set_var("#DACODFASE", TVariant(_mask->get(F_DACODFASE))); - recset.set_var("#ACODFASE", TVariant(_mask->get(F_ACODFASE))); + if (_has_ca) + recset.set_var("#CODCMS", TVariant(_mask->get(F_CODCMS))); + else + { + recset.set_var("#DACODCMS", TVariant(_mask->get(F_DACODCMS))); + recset.set_var("#ACODCMS", TVariant(_mask->get(F_ACODCMS))); + recset.set_var("#DACODFASE", TVariant(_mask->get(F_DACODFASE))); + recset.set_var("#ACODFASE", TVariant(_mask->get(F_ACODFASE))); + } //per il conto va gestito il fatto che il conto è contabile e non analitico ed è 0-filled TString contone; @@ -357,15 +385,13 @@ void TPrint_contixcms::main_loop() bool TPrint_contixcms::create() { //controlla se la chiave ha il modulo CA (e non solo CM) NON è ammesso CA E CM - const bool has_ca = dongle().active(CAAUT); + _has_ca = dongle().active(CAAUT); //in tal caso il programma è utilizzabile solo se si ha il piano dei conti contabile.. - //..e le fasi non legate alle commesse - if (has_ca) + if (_has_ca) { TConfig& cfg = ca_config(); const bool usepdcc = cfg.get_bool("UsePdcc"); - const TString& fath_fasi = cfg.get("FathFasi"); - if (!usepdcc || fath_fasi == "CMS") + if (!usepdcc) return error_box(TR("Il programma non è utilizzabile con la corrente configurazione CA!")); } diff --git a/ca/ca1800a.h b/ca/ca1800a.h index 550bdb84d..85389049d 100755 --- a/ca/ca1800a.h +++ b/ca/ca1800a.h @@ -16,16 +16,19 @@ #define F_ACODFASE 112 #define F_ADESFASE 113 -#define F_GRUPPOINI 115 -#define F_CONTOINI 116 -#define F_SOTTOCINI 117 -#define F_DESCRINI 118 -#define F_GRUPPOFIN 120 -#define F_CONTOFIN 121 -#define F_SOTTOCFIN 122 -#define F_DESCRFIN 123 +#define F_CODCMS 114 +#define F_DESCMS 115 -#define F_HIDESOTT 125 +#define F_GRUPPOINI 118 +#define F_CONTOINI 119 +#define F_SOTTOCINI 120 +#define F_DESCRINI 121 +#define F_GRUPPOFIN 122 +#define F_CONTOFIN 123 +#define F_SOTTOCFIN 124 +#define F_DESCRFIN 125 -#define F_REPORT 126 +#define F_HIDESOTT 130 + +#define F_REPORT 131 diff --git a/ca/ca1800a.uml b/ca/ca1800a.uml index 7553b6cd8..ae50fc094 100755 --- a/ca/ca1800a.uml +++ b/ca/ca1800a.uml @@ -92,6 +92,7 @@ BEGIN OUTPUT F_DADESCMS DESCRIZ CHECKTYPE SEARCH FIELD #DACODCMS + GROUP 1 END STRING F_DADESCMS 50 48 @@ -103,6 +104,7 @@ BEGIN DISPLAY "Codice@20" CODCMS COPY OUTPUT F_DACODCMS CHECKTYPE NORMAL + GROUP 1 END STRING F_ACODCMS 20 @@ -116,6 +118,7 @@ BEGIN OUTPUT F_ADESCMS DESCRIZ CHECKTYPE SEARCH FIELD #ACODCMS + GROUP 1 END STRING F_ADESCMS 50 48 @@ -126,11 +129,49 @@ BEGIN COPY DISPLAY F_DADESCMS COPY OUTPUT F_ACODCMS CHECKTYPE NORMAL + GROUP 1 +END + +//campo solo per CA +STRING F_CODCMS 20 +BEGIN + PROMPT 2 8 "" + FLAGS "UZ" + USE COMMESSE + INPUT CODCMS F_CODCMS + DISPLAY "Codice@20" CODCMS + DISPLAY "Descrizione@50" DESCRIZ + OUTPUT F_CODCMS CODCMS + OUTPUT F_DESCMS DESCRIZ + CHECKTYPE SEARCH + FIELD #CODCMS + GROUP 2 +END + +//campo solo per CA +STRING F_DESCMS 50 48 +BEGIN + PROMPT 29 8 "" + USE COMMESSE KEY 2 + INPUT DESCRIZ F_DESCMS + DISPLAY "Descrizione@50" DESCRIZ + DISPLAY "Codice@20" CODCMS + COPY OUTPUT F_CODCMS + CHECKTYPE NORMAL + GROUP 2 +END + +//campo solo per CA +TEXT DLG_NULL +BEGIN + PROMPT 2 9 "Non selezionare alcuna commessa per stamparle tutte" + GROUP 2 END GROUPBOX DLG_NULL 79 4 BEGIN PROMPT 1 11 "@bSelezione fasi" + GROUP 3 END STRING F_DACODFASE 10 @@ -145,6 +186,7 @@ BEGIN OUTPUT F_DADESFASE DESCRIZ CHECKTYPE SEARCH FIELD #DACODFASE + GROUP 3 END STRING F_DADESFASE 50 @@ -156,6 +198,7 @@ BEGIN DISPLAY "Codice@20" CODFASE COPY OUTPUT F_DACODFASE CHECKTYPE NORMAL + GROUP 3 END STRING F_ACODFASE 10 @@ -169,6 +212,7 @@ BEGIN OUTPUT F_ADESFASE DESCRIZ CHECKTYPE SEARCH FIELD #ACODFASE + GROUP 3 END STRING F_ADESFASE 50 @@ -179,6 +223,7 @@ BEGIN COPY DISPLAY F_DADESFASE COPY OUTPUT F_ACODFASE CHECKTYPE NORMAL + GROUP 3 END GROUPBOX DLG_NULL 79 6