-- Schema: C6MartPeriodico
-- Stored Procedure: SRV_STORICIZZAZIONE_OLD


-- =============================================
-- Author:		Paolo Giovanetti
-- Create date: 21 gennaio 2009
-- Description:	Effettua una storicizzazione del DataMart prima dell'import di nuovi dati.
-- =============================================
-- [C6MartPeriodico].[SRV_STORICIZZAZIONE] 'GESTIONE_EMAIL'
CREATE PROCEDURE [C6MartPeriodico].[SRV_STORICIZZAZIONE_OLD]
	@NomeTabella AS 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

	SET @TempoStoricoC6 = dbo.getparametro('TempoStoricoC6') 

	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MARTPERIODICO.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6

	SET @ID_ELAB = C6MARTPERIODICO.GETIDELAB()

-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6StoricoPeriodico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.CONTRATTOSEI
		(Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, ID_ELAB)
		SELECT 
		 Rete, Cod_Fiscale, Data_Sott, CodiceContratto, Cod_Agente, Data_Perf_Base, Data_Perf, Fascia_CPP, Email, Indirizzo, CAP, Citta, Prov, Nazione, Presso, Data_Inizio, Freq_Diagnosi, Freq_Monitor, Freq_DiagnosiPrec, Freq_MonitorPrec, Data_InizioConsInv, Data_InizioBase, Data_FineBase, Data_InizioAvanzato, Data_FineAvanzato, ProgressivoInvio, GenerazioneReport, InvioBenvenuto, DataUltimoInvio, ClienteMigrato, RisorseNA, NumSolleciti, Data_UltimoSollecito, NumRevoche, Data_UltimaRevoca, Note, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI --WHERE ID_ELAB = @ID_ELAB
	END
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLA SPECIALE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CC')
	BEGIN
		DELETE FROM C6StoricoPeriodico.ANAG_CC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.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 C6MartPeriodico.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 C6StoricoPeriodico.ANAG_CC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6StoricoPeriodico.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 C6MartPeriodico.ANAG_CC_TERZI WHERE ID_ELAB = @ID_ELAB
	END
 
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI')
	BEG
