88 lines
3.9 KiB
Transact-SQL
88 lines
3.9 KiB
Transact-SQL
-- Schema: C6Mart
|
|
-- Stored Procedure: SRV_STORICIZZAZIONE
|
|
|
|
|
|
-- =============================================
|
|
-- 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]
|
|
@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
|
|
AP.DESCRIZIONE_ORIGINALE, AP.ALBERO_GERARCHIA_1, AP.ALBERO_GERARCHIA_2, AP.ALBERO_GERARCHIA_3, AP.ID_ELAB
|
|
FROM C6Mart.ALBERO_PRODOTTI AP
|
|
LEFT OUTER JOIN C6Storico.ALBERO_PRODOTTI SAP
|
|
ON AP.DESCRIZIONE_ORIGINALE = SAP.DESCRIZIONE_ORIGINALE
|
|
WHERE AP.ID_ELAB = @ID_ELAB AND AP.DESCRIZIONE_ORIGINALE IS NULL
|
|
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, SALDOCONTABILE,SALDODISPONIBILE, DATA_APERTURA, DATA_CHIUSURA, ID_ELAB, TIPO_ELAB)
|
|
SELECT
|
|
AC.RETE, AC.COD_FISCALE, AC.INTERMEDIARIO, AC.COINTEST, AC.COD_CC, AC.FASCIA_CPP, AC.SALDOCONTABILE, AC.SALDODISPONIBILE, AC.DATA_APERTURA, AC.DATA_CHIUSURA, AC.ID_ELAB, AC.TIPO_ELAB
|
|
FROM C6Mart.ANAG_CC AC
|
|
LEFT OUTER JOIN C6Storico.ANAG_CC SAC
|
|
ON AC.RETE = SAC.RETE
|
|
AND AC.COD_FISCALE = SAC.COD_FISCALE
|
|
AND AC.COD_CC = SAC.COD_CC
|
|
WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
|
|
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
|
|
ACT.RETE, ACT.COD_FISCALE, ACT.INTERMEDIARIO, ACT.COINTEST, ACT.COD_CC, ACT.FASCIA_CPP, ACT.SALDO, ACT.DATA_APERTURA, ACT.DATA_CHIUSURA, ACT.ID_ELAB
|
|
FROM C6Mart.ANAG_CC_TERZI ACT
|
|
LEFT OUTER JOIN C6Storico.ANAG_CC_TERZI SACT
|
|
ON ACT.RETE = SACT.RETE
|
|
AND ACT.COD_FISCALE = SACT.COD_FISCALE
|
|
AND ACT.INTERMEDIARIO = SACT.INTERMEDIARIO
|
|
AND ACT.COD_CC = SACT.COD_CC
|
|
WHERE ACT.ID_ELAB = @ID_ELAB AND SACT.RETE IS NULL
|
|
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, CITTADI
|