From ad0d25196cf0e6d0007094a87aff00570033ef29 Mon Sep 17 00:00:00 2001 From: Simone Palacino Date: Thu, 16 Apr 2020 18:54:56 +0200 Subject: [PATCH] Patch level : 12.0 no-patch Files correlati : f90.exe f90104.sql Commento : - F9 ARCHIVIAZIONE SOSTITUTIVA: - Aggiunte colonne codice societa' per f9error e f9movestr. - Corretta eliminazione estrazioni. --- src/f9/f90100.cpp | 9 ++++++--- src/f9/f901tab.h | 10 ++++++++++ src/f9/sql/f90104.sql | 15 ++++++++++++++- 3 files changed, 30 insertions(+), 4 deletions(-) diff --git a/src/f9/f90100.cpp b/src/f9/f90100.cpp index d0dbe418f..7c2ab2d63 100644 --- a/src/f9/f90100.cpp +++ b/src/f9/f90100.cpp @@ -258,13 +258,14 @@ void TMonitor_mask::delete_pack(const bool all) const flag = true; const TString id_estr(row->get(cid2index(F_IDESTR))); TString query; + const TString codsoc(f9_app().get_ambiente()); query << "BEGIN\n" " DECLARE @stato CHAR(2);\n\n" " SELECT @stato = " DRD_STATO "\n" " FROM " F9_DRD "\n" " WHERE " DRD_ID_EST " = '" << id_estr << "';\n\n" " IF(@stato = '" D_GEST_ERR "') BEGIN\n" - " DELETE FROM " F9_ERR " WHERE IDESTR = '" << id_estr << "';\n" + " DELETE FROM " F9_ERR " WHERE IDOC = '" << codsoc << "' AND IDESTR = '" << id_estr << "';\n" " END\n" " ELSE BEGIN\n" " SELECT @stato AS STATO;\n" @@ -278,8 +279,9 @@ void TMonitor_mask::delete_pack(const bool all) const " FROM " F9_DRD "\n" " WHERE " DRD_ID_EST " = '" << id_estr << "';\n\n" " IF (@flag_prov = 'P' OR @stato = '" D_GEST_ERR "') BEGIN\n" - " DELETE FROM " F9_DRD " WHERE " DRD_ID_EST " = '" << id_estr << "';\n" - " DELETE FROM " F9_IVA " WHERE " IVA_IDLAN " = '" << id_estr << "';\n" + " DELETE FROM " F9_DRD " WHERE " DRD_CODSOC " = '" << codsoc << "' AND " DRD_ID_EST " = '" << id_estr << "';\n" + " DELETE FROM " F9_IVA " WHERE " IVA_CODSOC " = '" << codsoc << "' AND " IVA_IDLAN " = '" << id_estr << "';\n" + " DELETE FROM " F9_MOVESTR " WHERE " MOV_CODSOC " = '" << codsoc << "' AND " MOV_IDESTR " = '" << id_estr << "';\n" " END\n" " SELECT @flag_prov AS FLAG, @stato AS STATO;\n" "END"; @@ -289,6 +291,7 @@ void TMonitor_mask::delete_pack(const bool all) const warning_box("E' possibile eliminare solo un'estrazione provvisoria o in stato di errore diagnostica gestionale."); return; } + fp_db().sq_commit(); if (!all) break; } diff --git a/src/f9/f901tab.h b/src/f9/f901tab.h index c67a3858a..b41e6ad93 100644 --- a/src/f9/f901tab.h +++ b/src/f9/f901tab.h @@ -102,3 +102,13 @@ #define DRT_TIPOCAU "F9TTCAU" // A(6) - tipo causale contabile #define DRT_TIPOMOV "F9TTMOV" // A(6) - tipo movimento contabile #define DRT_OPCEE "F9TFCEE" // A(6) - operatore CEE + + +// F9MOVESTR : TABELLA MOVIMENTI ESTRATTI + +#define MOV_CODSOC "IDSOC" +#define MOV_IDESTR "IDESTR" +#define MOV_NUMREG "NUMREG" +#define MOV_DATAREG "DATAREG" +#define MOV_ESTR "ESTRATTO" +#define MOV_ERR "DESCR_ERR" diff --git a/src/f9/sql/f90104.sql b/src/f9/sql/f90104.sql index 54b8ab539..d1f95ab7d 100644 --- a/src/f9/sql/f90104.sql +++ b/src/f9/sql/f90104.sql @@ -1,8 +1,21 @@ CREATE TABLE F9MOVESTR( + IDSOC CHAR(10) NOT NULL, IDESTR CHAR(18) NOT NULL, NUMREG NUMERIC(7,0) NOT NULL, DATAREG DATE, ESTRATTO BIT DEFAULT '0' NOT NULL, DESCR_ERR VARCHAR(1024) ); -ALTER TABLE F9MOVESTR ADD CONSTRAINT F9MOVESTR_PK PRIMARY KEY(IDESTR, NUMREG); \ No newline at end of file +ALTER TABLE F9MOVESTR ADD CONSTRAINT F9MOVESTR_PK PRIMARY KEY(IDSOC, IDESTR, NUMREG); + +ALTER TABLE F9ERROR ADD COLUMN IDSOC CHAR(10) NOT NULL; +DECLARE @name nvarchar(128), @sql NVARCHAR(MAX) +SELECT @name = name +FROM sys.key_constraints +WHERE type = 'PK' AND OBJECT_NAME(parent_object_id) = N'F9ERROR' + +SELECT @sql = 'ALTER TABLE F9ERROR DROP CONSTRAINT ' + @name + +EXEC sp_executeSQL @sql; + +ALTER TABLE F9ERROR ADD CONSTRAINT F9ERROR_PK PRIMARY KEY(IDSOC, IDESTR, NUMREG);