PDC_REPORT_CreazioneDB/sql/storedCollaudo/C6Mart_SRV_STORICIZZAZIONE_OLD.sql
2025-06-06 19:02:52 +02:00

82 lines
3.9 KiB
Transact-SQL

-- Schema: C6Mart
-- Stored Procedure: SRV_STORICIZZAZIONE_OLD
-- Stored procedure
-- =============================================
-- Author: paolo giovanetti
-- Create date: 23 gennaio 2009
-- Description: - rimossa la transazione inutile
-- - aggiunta la storicizzazione delle elaborazioni e del global_error
-- - la storicizzazione di GESTIONE_ZIP_FTP prevede la sua pulizia sul MART !!
-- =============================================
CREATE PROCEDURE [C6Mart].[SRV_STORICIZZAZIONE_OLD]
@NomeTabella VARCHAR(50) = NULL
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for procedure here
DECLARE @ID_ELAB INT -- Elaborazione da storicizzare
DECLARE @MIN_ID_ELAB AS INT -- Elaborazione vecchia da eliminare dallo storico
DECLARE @TempoStoricoC6 AS INT -- Numero di giorni di vita dello storico espresso in giorni
SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6')
SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
FROM C6MART.ELABORAZIONI
WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6
SET @ID_ELAB = C6MART.GETIDELAB()
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX INIZIO TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
--XXXXXXXXXXXXXXXXXXXXXXXX ALBERO_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
IF(@NomeTabella IS NULL OR @NomeTabella = 'ALBERO_PRODOTTI')
BEGIN
DELETE FROM C6Storico.ALBERO_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
INSERT INTO C6Storico.ALBERO_PRODOTTI
(DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ID_ELAB)
SELECT
DESCRIZIONE_ORIGINALE, ALBERO_GERARCHIA_1, ALBERO_GERARCHIA_2, ALBERO_GERARCHIA_3, ID_ELAB
FROM C6Mart.ALBERO_PRODOTTI WHERE ID_ELAB = @ID_ELAB
END
--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
BEGIN
DELETE FROM C6Storico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
INSERT INTO C6Storico.ANAG_CC
(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
SELECT
RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB
FROM C6Mart.ANAG_CC WHERE ID_ELAB = @ID_ELAB
END
--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC_TERZI')
BEGIN
DELETE FROM C6Storico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
INSERT INTO C6Storico.ANAG_CC_TERZI
(RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB)
SELECT
RETE, COD_FISCALE, INTERMEDIARIO, COINTEST, COD_CC, FASCIA_CPP, SALDO, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB
FROM C6Mart.ANAG_CC_TERZI WHERE ID_ELAB = @ID_ELAB
END
--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
BEGIN
DELETE FROM C6Storico.ANAG_CLIENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
INSERT INTO C6Storico.ANAG_CLIENTI
(RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB)
SELECT
RETE, COD_FISCALE, NOME, COGNOME, DATA_NASCITA, STATO_CIVILE, NUM_COMPONENTI, NUM_FIGLI, ETA, PARTITA_IVA, CITTADINANZA, PERSONA_FIS_GIUR, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, PRESSO, TEL_RECAPITO, TEL_CELL, E_MAIL, DATA_INIZIO, DATA_FINE, STATO, RAG_SOC, SESSO, ID_PROMOTORE, ID_ELAB, TIPO_ELAB
FROM C6Mart.ANAG_CLIENTI WHERE ID_ELAB = @ID_ELAB
END
--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
IF(@NomeTabella IS NULL O