From bb4c48b9deddff266cfaae2e3a372611fe4044d2 Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Mon, 8 Jul 2019 11:54:19 +0200 Subject: [PATCH] Patch level : 12.0 854 Files correlati : fp0.exe fp0400a.msk Commento : Aggiunta associazione automatica all'avvio --- src/fp/fp0400.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ src/fp/fp0400a.uml | 4 ++-- src/fp/fplib.h | 1 + 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/src/fp/fp0400.cpp b/src/fp/fp0400.cpp index 45219c578..d3f615342 100644 --- a/src/fp/fp0400.cpp +++ b/src/fp/fp0400.cpp @@ -98,6 +98,7 @@ protected: public: TString& get_fattsel() const; + void auto_assoc(); TPassive_mask(bool f1); }; @@ -412,6 +413,48 @@ TString& TPassive_mask::get_fattsel() const return fattsel << get(F_ASSOC); } +void TPassive_mask::auto_assoc() +{ + TString query = "SELECT PZ_TIPOPROT AS TIPO_PROT, YEAR(P7_DATA) AS ANNO, P7_TIPODOC AS [TIPO_SDI], P7_NUMERO AS [NUM_DOC], \n" + "P7_DATA AS[DATA_DOC], PZ_DATAORARIC AS[DATA_RIC], PQ_IMPTOTDOC AS[TOT_DOC], PZ_NUMREGCONT AS NUMREGCONT, PZ_DATAREGCONT AS DATAREGCONT, P2_ANADENOMIN AS[RAG_SOC], P2_ANANOME AS NOME, \n" + "P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS[P_IVA], P2_CODFISCALE AS[COD_FISC], P2_FISCIVAPAESE AS[COD_PAESE], \n" + "COUNT(PP_ATTACHMENT) AS ATTACHMENT, P1_CODDEST AS[COD_SDI], PU_PEC AS PEC, P1_KEYPRGINVIO AS KEYPROG, P1_KEYHEADERFATT AS KEYHEAD, P1_KEYBODYFATT AS KEYFATT, \n" + "PZ_NUMPROT AS[NUM_PROT], PZ_ANNOPROT AS[ANNO_PROT], PZ_TIPOCF AS[TIPO_CF], PZ_CLIFOR AS[COD_CLIFOR] \n" + "FROM PAA0100F PAA01 \n" + "JOIN PAA0200F PAA02 ON P1_KEYPRGINVIO = P2_KEYPRGINVIO and P1_KEYHEADERFATT = P2_KEYHEADERFATT and P1_KEYBODYFATT = P2_KEYBODYFATT \n" + "JOIN PAA0700F PAA07 ON P1_KEYPRGINVIO = P7_KEYPRGINVIO and P1_KEYHEADERFATT = P7_KEYHEADERFATT and P1_KEYBODYFATT = P7_KEYBODYFATT \n" + "JOIN PAA2700F PAA27 ON P1_KEYPRGINVIO = PQ_KEYPRGINVIO and P1_KEYHEADERFATT = PQ_KEYHEADERFATT and P1_KEYBODYFATT = PQ_KEYBODYFATT \n" + "LEFT JOIN PAA2600F PAA26 ON P1_KEYPRGINVIO = PP_KEYPRGINVIO and P1_KEYHEADERFATT = PP_KEYHEADERFATT and P1_KEYBODYFATT = PP_KEYBODYFATT \n" + "LEFT JOIN PAA3200F PAA32 ON P1_KEYPRGINVIO = PU_KEYPRGINVIO and P1_KEYHEADERFATT = PU_KEYHEADERFATT and P1_KEYBODYFATT = PU_KEYBODYFATT \n" + "LEFT JOIN FPPRO00F FPPRO ON P1_KEYPRGINVIO = PZ_KEYPRGINVIO and P1_KEYHEADERFATT = PZ_KEYHEADERFATT and P1_KEYBODYFATT = PZ_KEYBODYFATT \n" + "WHERE PZ_CLIFOR = '' \n" + "GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, PZ_DATAORARIC, PQ_IMPTOTDOC, PZ_NUMREGCONT, PZ_DATAREGCONT, P2_ANADENOMIN, P2_ANANOME, P2_ANACOGNOME, P2_FISCIVACOD, P2_CODFISCALE, P2_FISCIVAPAESE, \n" + "P1_CODDEST, PU_PEC, P1_KEYPRGINVIO, P1_KEYHEADERFATT, P1_KEYBODYFATT, PZ_TIPOPROT, PZ_NUMPROT, PZ_ANNOPROT, PZ_TIPOCF, PZ_CLIFOR;"; + + fp_db().sq_set_exec(query, false); + SSimple_query update_db; set_connection(update_db); update_db.sq_set_autocommit(false); // Non posso usare contemporaneamente due volte fp_db() + + TLocalisamfile clifo(LF_CLIFO); + for(bool ok = fp_db().sq_next(); ok; ok = fp_db().sq_next()) + { + TToken_string key("",';'); + key.add(fp_db().sq_get("KEYPROG")); key.add(fp_db().sq_get("KEYHEAD")); key.add(fp_db().sq_get("KEYFATT")); + + clifo.zero(); + clifo.put(CLI_TIPOCF, "F"); + + int for_cod = find_fornitore(clifo); + if(for_cod > 0) + { + static TString update; + update.cut(0) << "UPDATE FPPRO00F \nSET PZ_TIPOCF = 'F', PZ_CLIFOR = '" << clifo.get(CLI_CODCF) << "' \n" << + "WHERE PZ_KEYPRGINVIO = '" << key.get(0) << "' AND PZ_KEYHEADERFATT = '" << key.get(1) << "' AND PZ_KEYBODYFATT = '" << key.get(2) << "';"; + update_db.sq_set_exec(update); + } + } + update_db.sq_commit(); +} + int TPassive_mask::find_fornitore(TLocalisamfile& clifo) { TString paa_codfisc = fp_db().sq_get("COD_FISC"); @@ -1114,6 +1157,7 @@ TPassive_mask::TPassive_mask(bool f1) : TAutomask("fp0400a"), _f1(f1), _filter_c _tmp_dir = _tmp_dir.tempdir(); TMask::set_handler(F_CAUSFA, causfa_handler); TMask::set_handler(F_FORNITORE, clifo_handler); + auto_assoc(); } diff --git a/src/fp/fp0400a.uml b/src/fp/fp0400a.uml index 2b2730d9d..12388022d 100644 --- a/src/fp/fp0400a.uml +++ b/src/fp/fp0400a.uml @@ -30,7 +30,7 @@ END BUTTON DLG_EXPORT 10 2 BEGIN - PROMPT 4 1 "Contabilizzaz." + PROMPT 4 1 "Contabilizza" PICTURE TOOL_EXPORT END @@ -43,8 +43,8 @@ PAGE "Fatture Passive" 0 2 0 0 RADIOBUTTON F_ASSOC 20 50 BEGIN PROMPT 0 1 "@BFornitori" - ITEM "|Non Associate" ITEM "E|Associate" + ITEM "|Non Associate" ITEM "A|Tutte" FLAGS "Z" END diff --git a/src/fp/fplib.h b/src/fp/fplib.h index 7eb4c7646..6f46946a6 100644 --- a/src/fp/fplib.h +++ b/src/fp/fplib.h @@ -23,6 +23,7 @@ class TDoc_fp; enum { no_pdf = -1, pdf_ok = 0, no_alleg = -2}; +bool set_connection(SSimple_query& s); // Ritorna la connessione al DB paf secondo i parametri impostati nel programma di configurazione SSimple_query& fp_db(); // Lancia una maschera di password FP