From c3734751d5e5fcd65fdbcb1a6c9b3328432de3d7 Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Fri, 2 Aug 2019 11:09:20 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:?= =?UTF-8?q?=2012.0=20no-patch=20Files=20correlati=20=20=20=20=20:=20includ?= =?UTF-8?q?e=20Commento=20=20=20=20=20=20=20=20=20=20=20=20:=20Aggiunte=20?= =?UTF-8?q?funzioni=20add=5Fback()=20e=20add=5Ffront=5Fand=5Fback()=20per?= =?UTF-8?q?=20aggiungere=20dietro=20una=20stringa=20(operatore=20<<)=20e?= =?UTF-8?q?=20aggiungerla=20davanti=20e=20dietro,=20di=20base=20inutili=20?= =?UTF-8?q?ma=20il=20codice=20=C3=A8=20pi=C3=B9=20bello?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/include/strings.cpp | 11 +++++++++++ src/include/strings.h | 7 +++++++ 2 files changed, 18 insertions(+) diff --git a/src/include/strings.cpp b/src/include/strings.cpp index e9bfa50cc..0efcd3a3b 100755 --- a/src/include/strings.cpp +++ b/src/include/strings.cpp @@ -1038,6 +1038,17 @@ TString & TString::add_front(const char * s) return *this; } +TString& TString::add_back(const char* s) +{ + return operator<<(s); +} + +TString& TString::add_front_and_back(const char* front, const char* back) +{ + add_front(front); + return add_back(back); +} + // Certified 90% word TString::hash() const { diff --git a/src/include/strings.h b/src/include/strings.h index b1a8802f3..9e8663597 100755 --- a/src/include/strings.h +++ b/src/include/strings.h @@ -77,6 +77,7 @@ public: // @cmember Ritorna un riferimento al carattere i-esimo della stringa char& operator[](int i) { + CHECKD(i >= 0 && i <= _size, "Bad string subscript: ", i); CHECKD(i >= 0 && i <= _size, "Bad string subscript: ", i); return _str[i]; } @@ -161,6 +162,12 @@ public: TString& insert(const char* s, int pos = 0); // @cmember Aggiunge la stringa passata davanti TString& add_front(const char* s); + // @cmember Aggiunge la stringa passata dietro, sta funzione non serve a un tubo, solo per rendere più bello il codice se chiamata con add_front + TString& add_back(const char* s); + // @cmember Aggiunge la prima stringa passata davanti e la seconda dietro + TString& add_front_and_back(const char * front, const char* back); + // @cmember Aggiunge la stringa passata davanti e dietro + TString& add_front_and_back(const char * s) { return add_front_and_back(s, s); } // @cmember Elimina tutti i caratteri contenuti in k TString& strip(const char* k); From a56e6648ad25a23042e9cb09977ddfef7f90b425 Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Fri, 2 Aug 2019 11:10:21 +0200 Subject: [PATCH 2/4] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:?= =?UTF-8?q?=2012.0=20866=20Files=20correlati=20=20=20=20=20:=20pa=20Commen?= =?UTF-8?q?to=20=20=20=20=20=20=20=20=20=20=20=20:=20Aggiunto=20codice=20c?= =?UTF-8?q?ommessa=20e=20gestione=20commesse=20per=20sanit=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pa/patbcon.h | 22 ++++++++++++---------- src/pa/patbcon.uml | 24 ++++++++++++++++++------ 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/src/pa/patbcon.h b/src/pa/patbcon.h index aa99a4e25..88b4e9519 100644 --- a/src/pa/patbcon.h +++ b/src/pa/patbcon.h @@ -1,16 +1,18 @@ #ifndef __PATBCON_H #define __PATBCON_H -#define F_CON_TIPO 101 -#define F_CON_CODCF 102 -#define F_CON_RAGSOC 112 -#define F_CON_CODICE 103 -#define F_CON_DESCRIZIONE 113 -#define F_CON_DATA 104 -#define F_CON_RIFAMM 105 -#define F_CON_CAUS1 121 -#define F_CON_CAUS2 122 -#define F_CON_CAUS3 123 +#define F_CON_TIPO 101 +#define F_CON_CODCF 102 +#define F_CON_RAGSOC 112 +#define F_CON_CODICE 103 +#define F_CON_DESCRIZIONE 113 +#define F_CON_DATA 104 +#define F_CON_RIFAMM 105 +#define F_CON_CAUS1 121 +#define F_CON_CAUS2 122 +#define F_CON_CAUS3 123 +#define F_CON_COMCON 124 +#define B_CON_ASL 125 #endif diff --git a/src/pa/patbcon.uml b/src/pa/patbcon.uml index a5d197273..5f3da7692 100644 --- a/src/pa/patbcon.uml +++ b/src/pa/patbcon.uml @@ -79,7 +79,7 @@ BEGIN END -GROUPBOX DLG_NULL 78 5 +GROUPBOX DLG_NULL 78 6 BEGIN PROMPT 1 5 "@bDati contratto/convenzione/ordine P.A." END @@ -109,30 +109,42 @@ END STRING F_CON_RIFAMM 20 BEGIN - PROMPT 24 7 "Riferimento amministrazione " + PROMPT 2 8 "Riferimento amministrazione " FIELD S4 END +STRING F_CON_COMCON 20 +BEGIN + PROMPT 2 9 "Codice commessa o convenzione " + FIELD S5 +END + +BOOLEAN B_CON_ASL +BEGIN + PROMPT 55 9 "Commessa per sanità" + FIELD B0 +END + GROUPBOX DLG_NULL 78 5 BEGIN - PROMPT 1 10 "@bCausale" + PROMPT 1 11 "@bCausale" END STRING F_CON_CAUS1 50 BEGIN - PROMPT 14 11 "" + PROMPT 14 12 "" FIELD S1 END STRING F_CON_CAUS2 50 BEGIN - PROMPT 14 12 "" + PROMPT 14 13 "" FIELD S2 END STRING F_CON_CAUS3 50 BEGIN - PROMPT 14 13 "" + PROMPT 14 14 "" FIELD S3 END From 64a9566522859a0d2d17d2e41ae137f5dcb82acc Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Fri, 2 Aug 2019 11:12:01 +0200 Subject: [PATCH 3/4] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:?= =?UTF-8?q?=2012.0=20866=20Files=20correlati=20=20=20=20=20:=20fp0.exe=20C?= =?UTF-8?q?ommento=20=20=20=20=20=20=20=20=20=20=20=20:=20-=20Sistemata=20?= =?UTF-8?q?funzione=20cco,=20non=20andava=20a=20causa=20del=20programma=20?= =?UTF-8?q?diverso=20rispetto=20a=20dove=20era=20prima=20-=20Aggiunta=20ge?= =?UTF-8?q?stione=20commesse=20sanit=C3=A0=20-=20Tolto=20else=20inutile=20?= =?UTF-8?q?in=20TFP=5Fexpression::parse=5Fsearch()?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fp/fplib01.cpp | 40 ++++++++++++++++++++++++++++++---------- src/fp/fplib05.cpp | 6 ++---- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/src/fp/fplib01.cpp b/src/fp/fplib01.cpp index 7c692157e..b1a6129bc 100644 --- a/src/fp/fplib01.cpp +++ b/src/fp/fplib01.cpp @@ -1024,15 +1024,27 @@ bool TDoc_fp::initialize(TDocumentoEsteso& doc) } const TRectype& TDoc_fp::cco(const TRectype& doc) const { - TString80 conkey; - const TString& con = doc.get(DOC_CONTRATTO); - if (con.full()) - { - char tcon = doc.get_char(DOC_MODPAG); - if (tcon < 'C') tcon = 'C'; - conkey.format("%c%6ld%s", tcon, doc.get_long(DOC_CODCF), static_cast(con)); - } - return cache().get("&CON", conkey); + TString80 conkey; + const TString& con = doc.get(DOC_CONTRATTO); + if (con.full()) + { + char tcon = doc.get_char(DOC_MODPAG); + if (tcon < 'C') tcon = 'C'; + conkey.format("%c%6ld%s", tcon, doc.get_long(DOC_CODCF), static_cast(con)); + } + + static TLocalisamfile tabmod(LF_TABMOD); + // Controllo se non sono già sul record, così evito read inutili + // Lo sto facendo a mano perchè usare cache() metterebbe FP nella colonna "MOD" + if (tabmod.get("MOD") != "PA" || tabmod.get("COD") != "CON" || tabmod.get("CODTAB") != conkey) + { + tabmod.zero(); + tabmod.put("MOD", "PA"); + tabmod.put("COD", "CON"); + tabmod.put("CODTAB", conkey); + tabmod.read(); + } + return tabmod.curr(); } void TDoc_fp::log(int severity, const char* msg) { @@ -1573,7 +1585,15 @@ bool TDoc_fp::doc_to_paf(TDocumentoEsteso& doc) // Fuori dallo scope per dopo const TString16 cup = doc.get(DOC_CUP); const TString16 cig = doc.get(DOC_CIG); - const TString80 com = doc.get(DOC_CODCMS); + + // Codice commessa, spostato nel campo S5 di TABCOM + TString80 com = cco(doc).get("S5"); + // Se è una commessa della sanità bisogna aggiungere un cancelletto davanti e dietro + if(cco(doc).get_bool("B0")) + { + com.add_front_and_back("#"); + } + // SEMPRE // Azzera contratti TPaf_record& paf1000f = _paf_container.get_paf("PAF1000F"); diff --git a/src/fp/fplib05.cpp b/src/fp/fplib05.cpp index 06bc344f3..3874dd69d 100644 --- a/src/fp/fplib05.cpp +++ b/src/fp/fplib05.cpp @@ -639,8 +639,6 @@ TVariant& TFP_expression::parse_search(const TString& str, TRiga_documento& rdoc { return get_value(cache().get(tabella, search, key), campo); } - else - { - return get_value(cache().get(file, search, key), campo); - } + + return get_value(cache().get(file, search, key), campo); } From ead62d4a32d660dd34b662e34bea9cf820fd66b8 Mon Sep 17 00:00:00 2001 From: Mattia Tollari Date: Fri, 2 Aug 2019 11:12:26 +0200 Subject: [PATCH 4/4] Patch level : 12.0 no-patch Files correlati : include Commento : Tolta riga duplicata per sbaglio --- src/include/strings.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/include/strings.h b/src/include/strings.h index 9e8663597..9ef03d33e 100755 --- a/src/include/strings.h +++ b/src/include/strings.h @@ -77,7 +77,6 @@ public: // @cmember Ritorna un riferimento al carattere i-esimo della stringa char& operator[](int i) { - CHECKD(i >= 0 && i <= _size, "Bad string subscript: ", i); CHECKD(i >= 0 && i <= _size, "Bad string subscript: ", i); return _str[i]; }