From 871064ce02d99911ea2c1d32240744cac88a3be1 Mon Sep 17 00:00:00 2001 From: Simoe Date: Tue, 21 Feb 2023 17:11:23 +0100 Subject: [PATCH] Patch level : 12.0 Files correlati : fp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Commento: Aggiunto al monitor delle fatture passive il campo ID SDI che seerve per la contabilizzazione dei TD16. il dato viene recuperato dal campo PZ_IDSDI del FPPROO. Quando si contabilizza il documento, se questo campo รจ compilato, viene riportato in prima nota nel "id fattura collegata" --- build/fp0.vcxproj | 12 ------------ build/fp0.vcxproj.filters | 34 ---------------------------------- src/fp/fp0400.cpp | 15 ++++++++++++--- src/fp/fp0400a.h | 9 +++++---- src/fp/fp0400a.uml | 9 ++++++++- 5 files changed, 25 insertions(+), 54 deletions(-) diff --git a/build/fp0.vcxproj b/build/fp0.vcxproj index 3f86d6ca1..ec1992a42 100644 --- a/build/fp0.vcxproj +++ b/build/fp0.vcxproj @@ -302,18 +302,6 @@ - - - - - - - - - - - - Designer diff --git a/build/fp0.vcxproj.filters b/build/fp0.vcxproj.filters index 07c466a9f..7b51fd866 100644 --- a/build/fp0.vcxproj.filters +++ b/build/fp0.vcxproj.filters @@ -22,12 +22,6 @@ {06bc8aeb-f506-4c2e-85fb-bdeb92f2c77e} - - {f86bc7e9-c06f-4646-a713-f6a10ee12e00} - - - {26bb518e-9e58-4988-9634-c5ce9b2573af} - {5eca5008-daf1-4473-8247-7dd6362ceeb1} @@ -164,34 +158,6 @@ Menu - - - Trr - - - Trr - - - Trr - - - Trr - - - - - Dir - - - Dir - - - Dir - - - Dir - - Reports diff --git a/src/fp/fp0400.cpp b/src/fp/fp0400.cpp index ec699467d..b49d4a9ee 100644 --- a/src/fp/fp0400.cpp +++ b/src/fp/fp0400.cpp @@ -204,7 +204,7 @@ void TPassive_mask::fill() 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], 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, PZ_NUMERO, PZ_DATA, " << - "P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE],\n" << + "P2_ANACOGNOME AS COGNOME, P2_FISCIVACOD AS [P_IVA], P2_CODFISCALE AS [COD_FISC], P2_FISCIVAPAESE AS [COD_PAESE], PZ_IDSDI AS[ID_SDI],\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, " << "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" << @@ -216,7 +216,7 @@ void TPassive_mask::fill() "LEFT JOIN FPPRO00F FPPRO ON P1_KEYPRGINVIO = PZ_KEYPRGINVIO and P1_KEYHEADERFATT = PZ_KEYHEADERFATT and P1_KEYBODYFATT = PZ_KEYBODYFATT\n" << "WHERE PZ_DATAORARIC >= \'" << dal.date2ansi() << "\' AND PZ_DATAORARIC < \'" << (al+(long)1).date2ansi() << "\'" << prots_query << "\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, PZ_NUMERO, PZ_DATA\n" << + "P1_CODDEST, PU_PEC, P1_KEYPRGINVIO, P1_KEYHEADERFATT, P1_KEYBODYFATT, PZ_TIPOPROT, PZ_NUMPROT, PZ_ANNOPROT, PZ_TIPOCF, PZ_CLIFOR, PZ_NUMERO, PZ_DATA, PZ_IDSDI\n" << "ORDER BY " << (ordin == "D"? "P7_DATA" : "PZ_DATAORARIC") << " " << (verso_ord == "C"? "ASC" : "DESC"); fp_db().sq_set_exec(query, false); @@ -297,6 +297,8 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee const TDate& dataregcont = fp_db().sq_get_date("DATAREGCONT"); const TString& filter_elab = get_fattsel(); const bool is_contab = dataregcont != TDate("20010101"); + const TString& id_sdi = fp_db().sq_get("ID_SDI"); + TToken_string keys("", ';'); keys.add(fp_db().sq_get("KEYPROG")); keys.add(fp_db().sq_get("KEYHEAD")); keys.add(fp_db().sq_get("KEYFATT")); @@ -329,6 +331,7 @@ void TPassive_mask::aggiungi_riga(TLocalisamfile& clifo, TSheet_field& sf, TShee sf.set_row_cell(S_DATADOC, fp_db().sq_get_date("DATA_DOC"), row); sf.set_row_cell(S_TOTDOC, fp_db().sq_get("TOT_DOC"), row); sf.set_row_cell(S_TOTRIT, fppro_db().set_keys(keys).get_ritenute(), row); + sf.set_row_cell(S_IDSDI, id_sdi, row); if (tiposdi == "TD16" || tiposdi == "TD17" || tiposdi == "TD18" || tiposdi == "TD19" || tiposdi == "TD20") { @@ -433,7 +436,7 @@ TString& TPassive_mask::get_fattsel() const 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" + "P7_DATA AS[DATA_DOC], PZ_DATAORARIC AS[DATA_RIC], PZ_IDSDI AS[ID_SDI], 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" @@ -737,6 +740,12 @@ int TPassive_mask::prepara_contab() const } contab_ini.set("KEYFPPRO", prokeys); + //Controllo se sto contabilizzando con una causale associata ai TD16 + //Se si riporto l'id della fattura originale salvato nel campo dell FPPRO PZ_IDSDI + const TString& idsdi = sf.get_str_row_cell(row, S_IDSDI); + if (idsdi.full()) + contab_ini.set("IDDOCSDI", idsdi); + // Esporto righe iva int i = 1; for (auto it = riva.begin(); it != riva.end(); ++it) diff --git a/src/fp/fp0400a.h b/src/fp/fp0400a.h index d6abae788..856505d33 100644 --- a/src/fp/fp0400a.h +++ b/src/fp/fp0400a.h @@ -49,10 +49,11 @@ #define S_STATOPAIV 114 #define S_PARIVA 115 #define S_CODFISC 116 -#define S_ATTACH 117 -#define S_RAGXML 118 -#define S_NPROT 119 -#define S_PROKEY 120 +#define S_IDSDI 117 +#define S_ATTACH 118 +#define S_RAGXML 119 +#define S_NPROT 120 +#define S_PROKEY 121 #define F_ERR 301 diff --git a/src/fp/fp0400a.uml b/src/fp/fp0400a.uml index 78522d847..250378b87 100644 --- a/src/fp/fp0400a.uml +++ b/src/fp/fp0400a.uml @@ -302,7 +302,7 @@ BEGIN ITEM "Anno" ITEM "Tipo Doc.\nSDI@5" ITEM "Numero\nDocumento@14" - ITEM "Data\nDoc.@8" + ITEM "Data\nDoc.@8" ITEM "Data\nRicezione@8" ITEM "Totale\nDocumento@7" ITEM "Totale\nritenute@6" @@ -314,6 +314,7 @@ BEGIN ITEM "Stato\nP.IVA@4" ITEM "Partita IVA@10" ITEM "Cod. Fiscale@12" + ITEM "ID SDI@8" ITEM "Allegati@6" ITEM "Ragione Sociale (XML)@40" ITEM "Numero Protocollo (in entrata)\n[anno-tipo prot/progressivo]@20" @@ -555,6 +556,12 @@ BEGIN FLAGS "D" END +STRING S_IDSDI 8 +BEGIN + PROMPT 1 1 "Id Sdi " + FLAGS "D" +END + BOOLEAN S_ATTACH BEGIN PROMPT 1 7 "Documenti in allegato"