From 444971f0525386d631188f90f7f8b006e2d9b9f9 Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Fri, 15 Feb 2019 10:58:17 +0100 Subject: [PATCH] =?UTF-8?q?Patch=20level=20=20=20=20=20=20=20=20=20:=2012.?= =?UTF-8?q?0=20700=20Files=20correlati=20=20=20=20=20:=20fp=20Commento=20?= =?UTF-8?q?=20=20=20=20=20=20=20=20=20=20=20:=20-=20Migliorata=20query=20p?= =?UTF-8?q?er=20filtro=20protocolli=20-=20Sistemato=20numero=20protocollo?= =?UTF-8?q?=20-=20Aggiunto=20booleano=20se=20=C3=A8=20stato=20salvato=20in?= =?UTF-8?q?=20FP=20PRO?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/fp/fp0400.cpp | 45 ++++++++++++++++++++++++++------------------- src/fp/fp0400a.h | 21 +++++++++++---------- src/fp/fp0400a.uml | 9 ++++++++- 3 files changed, 45 insertions(+), 30 deletions(-) diff --git a/src/fp/fp0400.cpp b/src/fp/fp0400.cpp index b0349a02c..5bce537c8 100644 --- a/src/fp/fp0400.cpp +++ b/src/fp/fp0400.cpp @@ -29,7 +29,6 @@ protected: void set_filter_changed(); void select_all(int sheet_field); - void select_all_filtri(); bool on_field_event(TOperable_field& o, TField_event e, long jolly) override; void next_page(int p) override; // Elenco dei protocolli selezionati @@ -38,6 +37,7 @@ protected: static int find_fornitore(TLocalisamfile& clifo); static void add_row_err_forn(int forn_code, TSheet_field& sf_err, TString& denom); static void aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TSheet_field& sf_err); + // Aggiunge i protocolli che sono già presenti per le fatture nel db alla tabellina per il filtro void aggiungi_prot() const; void init(); @@ -76,7 +76,7 @@ void TPassive_mask::fill() TSheet_field& sf = sfield(F_DOCS); TSheet_field& sf_err = sfield(F_ERR); TString query; - TString prots; + TString prots_query; TLocalisamfile clifo(LF_CLIFO); const TDate dal = get(F_DATAINI); @@ -87,7 +87,7 @@ void TPassive_mask::fill() sf_err.hide(); sf_err.destroy(); - elenco_prots_sel(prots); + elenco_prots_sel(prots_query); query << "SELECT PZ_TIPOPROT AS TIPO_PROT, YEAR(P7_DATA) AS ANNO, P7_TIPODOC AS [TIPO_SDI], P7_NUMERO AS [NUM_DOC], " << "P7_DATA AS [DATA_DOC], PQ_IMPTOTDOC AS [TOT_DOC], P2_ANADENOMIN AS [RAG_SOC], P2_ANANOME AS NOME, " << @@ -101,7 +101,7 @@ void TPassive_mask::fill() "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 P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\' AND PZ_TIPOPROT IN (" << prots << ")\n" << + "WHERE P7_DATA >= \'" << dal.date2ansi() << "\' AND P7_DATA <= \'" << al.date2ansi() << "\'" << prots_query << "\n" << "GROUP BY YEAR(P7_DATA), P7_TIPODOC, P7_NUMERO, P7_DATA, PQ_IMPTOTDOC, 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); @@ -124,6 +124,8 @@ void TPassive_mask::elenco_prots_sel(TString& string) const TString_array elenco; TSheet_field& sf = sfield(F_PROT); + string << " AND PZ_TIPOPROT IN ("; + FOR_EACH_SHEET_ROW(sf, nr, row) { if (*row->get(0) == 'X') @@ -135,10 +137,10 @@ void TPassive_mask::elenco_prots_sel(TString& string) const { for (int i = 0; i < elenco.items() - 1; i++) string << "\'" << elenco.row(i) << "\', "; - string << "\'" << elenco.row(elenco.items() - 1) << "\'"; + string << "\'" << elenco.row(elenco.items() - 1) << "\'" << ")\n"; } else - string = "\'\'"; + string = ""; } @@ -150,6 +152,7 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee const TString paa_piva = fp_db().sq_get("P_IVA"); const TString paa_codpaese = fp_db().sq_get("COD_PAESE"); const TString paa_codsdi = fp_db().sq_get("COD_SDI"); + TString prot = fp_db().sq_get("TIPO_PROT"); TToken_string& row = sf.row(-1); @@ -168,8 +171,10 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee row.add(fp_db().sq_get("DATA_DOC")); row.add(fp_db().sq_get("TOT_DOC")); - // Dopo aver fatto le ricerche se lo trovo aggiungo se no coloro la cella + // Dopo aver fatto le ricerche se lo trovo lo segno e lo aggiungo, se no coloro la cella forn_code = find_fornitore(clifo); + if (forn_code == 0) row.add("X"); + else row.add(""); if(forn_code >= 0) { @@ -187,10 +192,10 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee row.add(paa_piva); row.add(paa_codfisc); - row.add(fp_db().sq_get("ATTACHMENT").blank() ? "" : "X"); + row.add(fp_db().sq_get("ATTACHMENT") != "0" ? "" : "X"); row.add(paa_codsdi.blank() ? fp_db().sq_get("PEC") : paa_codsdi); row.add(denom); - row.add(fp_db().sq_get("TIPO_PROT") << fp_db().sq_get("NUM_PROT") << "/" << fp_db().sq_get("ANNO_PROT")); + row.add(fp_db().sq_get("ANNO_PROT") << (prot.empty() ? "" : "-") << prot << "/" << fp_db().sq_get("NUM_PROT") << (prot.empty() ? " (no prot.)" : "")); TString key_prot; key_prot << fp_db().sq_get("KEYPROG") << ";" << fp_db().sq_get("KEYHEAD") << ";" << fp_db().sq_get("KEYFATT"); row.add(key_prot); } @@ -199,6 +204,7 @@ void TPassive_mask::aggiungi_prot() const { TSheet_field& sf_prot = sfield(F_PROT); TString query = ""; + TString prot = ""; query << "SELECT DISTINCT(PZ_TIPOPROT) AS TIPO_PROT \nFROM FPPRO00F"; fp_db().sq_set_exec(query, false); @@ -206,8 +212,10 @@ void TPassive_mask::aggiungi_prot() const while (fp_db().sq_next()) { TToken_string& row = sf_prot.row(sf_prot.items()+1); + prot = fp_db().sq_get("TIPO_PROT"); + row.add("", 0); - row.add(fp_db().sq_get("TIPO_PROT")); + row.add(prot.empty() ? "no-prot." : prot ); } sf_prot.force_update(); @@ -323,12 +331,6 @@ void TPassive_mask::select_all(int sheet_field) } } -void TPassive_mask::select_all_filtri() -{ - -} - - void TPassive_mask::salva_for() { if(fp_db().sq_is_connect()) @@ -358,10 +360,12 @@ void TPassive_mask::salva_for() { q_update << "UPDATE FPPRO00F SET PZ_TIPOCF = 'F', PZ_CLIFOR = '" << row->get(sf.cid2index(S_FORNITORE)) << "' WHERE PZ_KEYPRGINVIO = '" << key.get(0) << "' AND PZ_KEYHEADERFATT = '" << key.get(1) << "' AND PZ_KEYBODYFATT = '" << key.get(2) << "'"; fp_db().sq_set_exec(q_update, false); + row->add("X", sf.cid2index(S_FPPRO)); + sf.force_update(); } } - row->add("", 0); } + row->add("", 0); } fp_db().sq_commit(); sf.force_update(); @@ -384,12 +388,13 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll if (e == fe_button) switch (curr_page()) { - case elenco_fe: - select_all(F_DOCS); case filtri: select_all(F_PROT); set_filter_changed(); break; + case elenco_fe: + select_all(F_DOCS); + break; default: break; } break; @@ -399,6 +404,7 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll { case elenco_fe: salva_for(); + break; default: break; } break; @@ -411,6 +417,7 @@ bool TPassive_mask::on_field_event(TOperable_field& o, TField_event e, long joll case F_DATAEND: if (e == fe_init) o.set(TDate(TODAY)); + break; default: break; } if ((e == fe_modify || e >= se_enter) && jolly == 0) diff --git a/src/fp/fp0400a.h b/src/fp/fp0400a.h index e9c6931ae..17fe99768 100644 --- a/src/fp/fp0400a.h +++ b/src/fp/fp0400a.h @@ -25,16 +25,17 @@ #define S_NDOC 104 #define S_DATADOC 105 #define S_TOTDOC 106 -#define S_FORNITORE 107 -#define S_RAGSOC 108 -#define S_STATOPAIV 109 -#define S_PARIVA 110 -#define S_CODFISC 111 -#define S_ATTACH 112 -#define S_COFI 113 -#define S_RAGXML 114 -#define S_NPROT 115 -#define S_PROKEY 116 +#define S_FPPRO 107 +#define S_FORNITORE 108 +#define S_RAGSOC 109 +#define S_STATOPAIV 110 +#define S_PARIVA 111 +#define S_CODFISC 112 +#define S_ATTACH 113 +#define S_COFI 114 +#define S_RAGXML 115 +#define S_NPROT 116 +#define S_PROKEY 117 #define F_ERR 301 diff --git a/src/fp/fp0400a.uml b/src/fp/fp0400a.uml index ab66d8c12..25dcdbbec 100644 --- a/src/fp/fp0400a.uml +++ b/src/fp/fp0400a.uml @@ -56,6 +56,7 @@ BEGIN ITEM "Num.\nDoc.@11" ITEM "Data\nDoc.@10" ITEM "Totale\nDoc." + ITEM "Salvato in\nFP PRO@7" ITEM "Fornitore" ITEM "Ragione Sociale@50" ITEM "Stato P.IVA@2" @@ -64,7 +65,7 @@ BEGIN ITEM "Allegati" ITEM "Codice destinatario@20" ITEM "Rag. Soc. (XML)@50" - ITEM "Numero Protocollo" + ITEM "Numero Protocollo\n[anno-tipo prot/progressivo]" ITEM "Chiave Prot.@80" END @@ -154,6 +155,12 @@ BEGIN FLAGS "D" END +BOOLEAN S_FPPRO +BEGIN + PROMPT 28 3 "Salvato" + FLAGS "D" +END + NUMBER S_FORNITORE 6 BEGIN PROMPT 1 4 "Fornitore "