﻿-- =============================================
-- 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, 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 
		 AC.RETE, AC.COD_FISCALE, AC.NOME, AC.COGNOME, AC.DATA_NASCITA, AC.STATO_CIVILE, AC.NUM_COMPONENTI, AC.NUM_FIGLI, AC.ETA, AC.PARTITA_IVA, AC.CITTADINANZA, AC.PERSONA_FIS_GIUR, AC.INDIRIZZO, AC.LOCALITA, AC.PROVINCIA, AC.CAP, AC.NAZIONE, AC.PRESSO, AC.TEL_RECAPITO, AC.TEL_CELL, AC.E_MAIL, AC.DATA_INIZIO, AC.DATA_FINE, AC.STATO, AC.RAG_SOC, AC.SESSO, AC.ID_PROMOTORE, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6Mart.ANAG_CLIENTI AC
		LEFT OUTER JOIN C6Storico.ANAG_CLIENTI SAC
			ON AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CLIENTI_PREV XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CLIENTI_PREV')
	--	BEGIN
	--		DELETE FROM C6Storico.ANAG_CLIENTI_PREV WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ANAG_CLIENTI_PREV
	--		(RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, STATO_LAVORATIVO, PROFESSIONE, CAT_PROFESSIONALE, DATA_INIZIO, DATA_FINE, RETRIB_LORDA, PROFESSIONE_SEC, CAT_PROFESSIONALE_SEC, DATA_INIZIO_SEC, DATA_FINE_SEC, RETRIB_LORDA_SEC, PROFESSIONE_PREC, CAT_PROFESSIONALE_PREC, DATA_INIZIO_PREC, DATA_FINE_PREC, RETRIB_LORDA_PREC, RICONGIUNZIONE, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.ANAG_CLIENTI_PREV WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI
		(ID_CONTRATTO, RETE, COD_FISCALE, COD_PRODOTTO, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_PERF, DATA_CHIUSURA, STATO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, COD_INTERNO, COD_MANDATO, COD_CC, RUBRICATO, CUSTODIA_GAR, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AC.ID_CONTRATTO, AC.RETE, AC.COD_FISCALE, AC.COD_PRODOTTO, AC.INTERMEDIARIO, AC.DATA_SOTTOSCRIZIONE, AC.DATA_PERF, AC.DATA_CHIUSURA, AC.STATO, AC.COD_SOTTOPRODOTTO, AC.TIPO_PRODOTTO, AC.COD_INTERNO, AC.COD_MANDATO, AC.COD_CC, AC.RUBRICATO, AC.CUSTODIA_GAR, AC.ID_ELAB, AC.TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI AC
		LEFT OUTER JOIN C6Storico.ANAG_CONTRATTI SAC
			ON AC.ID_CONTRATTO = SAC.ID_CONTRATTO
			AND AC.RETE = SAC.RETE
			AND AC.COD_FISCALE = SAC.COD_FISCALE
			AND AC.COD_PRODOTTO = SAC.COD_PRODOTTO
		WHERE AC.ID_ELAB = @ID_ELAB AND SAC.ID_CONTRATTO IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_CONTRATTI_ASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_CONTRATTI_ASS')
	BEGIN
		DELETE FROM C6Storico.ANAG_CONTRATTI_ASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_CONTRATTI_ASS
		(RETE, COD_FISCALE, NUM_POLIZZA, ID_CONTRATTO, TIPO_PRODOTTO, PREMIO, IMPORTO_RATA, FREQ_RATA, IMPORTO_ASSICURATO, DURATA_POLIZZA, ALIQUOTA, COD_SOTTOPRODOTTO, COD_INTERNO, DATA_APERTURA, DATA_CHIUSURA, INTERMEDIARIO, STATO, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 ACA.RETE, ACA.COD_FISCALE, ACA.NUM_POLIZZA, ACA.ID_CONTRATTO, ACA.TIPO_PRODOTTO, ACA.PREMIO, ACA.IMPORTO_RATA, ACA.FREQ_RATA, ACA.IMPORTO_ASSICURATO, ACA.DURATA_POLIZZA, ACA.ALIQUOTA, ACA.COD_SOTTOPRODOTTO, ACA.COD_INTERNO, ACA.DATA_APERTURA, ACA.DATA_CHIUSURA, ACA.INTERMEDIARIO, ACA.STATO, ACA.DIV_RIFERIMENTO, ACA.CAMBIO, ACA.ID_ELAB, ACA.TIPO_ELAB
		FROM C6Mart.ANAG_CONTRATTI_ASS ACA
		LEFT OUTER JOIN C6Storico.ANAG_CONTRATTI_ASS SACA
			ON ACA.RETE = SACA.RETE
			AND ACA.COD_FISCALE = SACA.COD_FISCALE
			AND ACA.ID_CONTRATTO = SACA.ID_CONTRATTO
			AND ACA.COD_SOTTOPRODOTTO = SACA.COD_SOTTOPRODOTTO
		WHERE ACA.ID_ELAB = @ID_ELAB AND SACA.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_EMITTENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_EMITTENTI')
	--	BEGIN
	--		DELETE FROM C6Storico.ANAG_EMITTENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ANAG_EMITTENTI
	--		(ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB)
	--		SELECT 
	--		 ID_EMITTENTE, DESCRIZIONE, NOTE, ID_ELAB
	--		FROM C6Mart.ANAG_EMITTENTI WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI
		(COD_PRODOTTO, COD_ISIN, PAESE, ID_AREA, CAT_PRODOTTO, TIPO_PRODOTTO, DESCR_PRODOTTO, DIV_QUOTAZIONE, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, COD_MAF, RATING, COD_ADEGUATEZZA, COD_SOTTOPRODOTTO, COD_INTERNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.COD_ISIN, AP.PAESE, AP.ID_AREA, AP.CAT_PRODOTTO, AP.TIPO_PRODOTTO, AP.DESCR_PRODOTTO, AP.DIV_QUOTAZIONE, AP.DIV_REGOLAMENTO, AP.ID_EMITTENTE, AP.MERCATO_CONTRATT, AP.COD_MAF, AP.RATING, AP.COD_ADEGUATEZZA, AP.COD_SOTTOPRODOTTO, AP.COD_INTERNO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI AP
		LEFT OUTER JOIN C6Storico.ANAG_PRODOTTI SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PRODOTTI_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PRODOTTI_TERZI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PRODOTTI_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PRODOTTI_TERZI
		(COD_PRODOTTO, COD_PRODOTTO_TERZI, NOME_PRODOTTO, ALBERO_PRODOTTI, COD_ISIN, DESCR_PRODOTTO, DIV_QUOTAZIONE, INTERMEDIARIO, DIV_REGOLAMENTO, ID_EMITTENTE, MERCATO_CONTRATT, PAESE, RATING, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO, APT.COD_PRODOTTO_TERZI, APT.NOME_PRODOTTO, APT.ALBERO_PRODOTTI, APT.COD_ISIN, APT.DESCR_PRODOTTO, APT.DIV_QUOTAZIONE, APT.INTERMEDIARIO, APT.DIV_REGOLAMENTO, APT.ID_EMITTENTE, APT.MERCATO_CONTRATT, APT.PAESE, APT.RATING, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6Mart.ANAG_PRODOTTI_TERZI APT
		LEFT OUTER JOIN C6Storico.ANAG_PRODOTTI_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ANAG_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ANAG_PROMOTORI')
	BEGIN
		DELETE FROM C6Storico.ANAG_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ANAG_PROMOTORI
		(RETE, ID_PROMOTORE, LIVELLO, COD_FISCALE, PARTITA_IVA, COGNOME, NOME, RAG_SOC, DATA_INIZIO, DATA_FINE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, TEL_RECAPITO, TEL_CELL, E_MAIL, COD_ABI, COD_CAB, COD_CIN, COD_CC, STATO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.RETE, AP.ID_PROMOTORE, AP.LIVELLO, AP.COD_FISCALE, AP.PARTITA_IVA, AP.COGNOME, AP.NOME, AP.RAG_SOC, AP.DATA_INIZIO, AP.DATA_FINE, AP.INDIRIZZO, AP.LOCALITA, AP.PROVINCIA, AP.CAP, AP.NAZIONE, AP.TEL_RECAPITO, AP.TEL_CELL, AP.E_MAIL, AP.COD_ABI, AP.COD_CAB, AP.COD_CIN, AP.COD_CC, AP.STATO, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ANAG_PROMOTORI AP
		LEFT OUTER JOIN C6Storico.ANAG_PROMOTORI SAP
			ON AP.RETE = SAP.RETE
			AND AP.ID_PROMOTORE = SAP.ID_PROMOTORE
			AND AP.LIVELLO = SAP.LIVELLO
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX AREA_BISOGNO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'AREA_BISOGNO')
	BEGIN
		DELETE FROM C6Storico.AREA_BISOGNO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.AREA_BISOGNO
		(ID_AREA, NOME_AREA, ORDINAMENTO, ID_ELAB)
		SELECT 
		 AB.ID_AREA, AB.NOME_AREA, AB.ORDINAMENTO, AB.ID_ELAB
		FROM C6Mart.AREA_BISOGNO AB
		LEFT OUTER JOIN C6Storico.AREA_BISOGNO SAB
			ON AB.ID_AREA = SAB.ID_AREA
		WHERE AB.ID_ELAB = @ID_ELAB AND SAB.ID_AREA IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC
		(COD_PRODOTTO, ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, LIVELLO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AP.COD_PRODOTTO, AP.ID_ASSETCLASS, AP.COD_ISIN, AP.COD_MAF, AP.COD_INTERNO, AP.COD_SOTTOPRODOTTO, AP.LIVELLO, AP.PERC, AP.ID_ELAB, AP.TIPO_ELAB
		FROM C6Mart.ASSET_PERC AP
		LEFT OUTER JOIN C6Storico.ASSET_PERC SAP
			ON AP.COD_PRODOTTO = SAP.COD_PRODOTTO
			AND AP.ID_ASSETCLASS = SAP.ID_ASSETCLASS
		WHERE AP.ID_ELAB = @ID_ELAB AND SAP.COD_PRODOTTO IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSET_PERC_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSET_PERC_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSET_PERC_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSET_PERC_TERZI
		(COD_PRODOTTO_TERZI, ID_ASSETCLASS, LIVELLO, NOME_PRODOTTO, TIPO_PRODOTTO, PERC, ID_ELAB, TIPO_ELAB)
		SELECT 
		 APT.COD_PRODOTTO_TERZI, APT.ID_ASSETCLASS, APT.LIVELLO, APT.NOME_PRODOTTO, APT.TIPO_PRODOTTO, APT.PERC, APT.ID_ELAB, APT.TIPO_ELAB
		FROM C6Mart.ASSET_PERC_TERZI APT
		LEFT OUTER JOIN C6Storico.ASSET_PERC_TERZI SAPT
			ON APT.COD_PRODOTTO_TERZI = SAPT.COD_PRODOTTO_TERZI
			AND APT.ID_ASSETCLASS = SAPT.ID_ASSETCLASS
			AND APT.LIVELLO = SAPT.LIVELLO
		WHERE APT.ID_ELAB = @ID_ELAB AND SAPT.COD_PRODOTTO_TERZI IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS
		(ID_ASSETCLASS, DESCRIZIONE, LIVELLO, ORDINAMENTO, ID_ELAB)
		SELECT 
		 A.ID_ASSETCLASS, A.DESCRIZIONE, A.LIVELLO, A.ORDINAMENTO, A.ID_ELAB
		FROM C6Mart.ASSETCLASS A
		LEFT OUTER JOIN C6Storico.ASSETCLASS SA
			ON A.ID_ASSETCLASS = SA.ID_ASSETCLASS
		WHERE A.ID_ELAB = @ID_ELAB AND SA.ID_ASSETCLASS IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ASSETCLASS_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ASSETCLASS_TERZI')
	BEGIN
		DELETE FROM C6Storico.ASSETCLASS_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ASSETCLASS_TERZI
		(ID_ASSETCLASS, COD_ISIN, COD_MAF, COD_ADEGUATEZZA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 AT.ID_ASSETCLASS, AT.COD_ISIN, AT.COD_MAF, AT.COD_ADEGUATEZZA, AT.ID_ELAB, AT.TIPO_ELAB
		FROM C6Mart.ASSETCLASS_TERZI AT
		LEFT OUTER JOIN C6Storico.ASSETCLASS_TERZI SAT
			ON AT.ID_ASSETCLASS = SAT.ID_ASSETCLASS
		WHERE AT.ID_ELAB = @ID_ELAB AND SAT.ID_ASSETCLASS IS NULL
	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX CATEGORIE_PRODOTTO XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CATEGORIE_PRODOTTO')
--	BEGIN
--		DELETE FROM C6Storico.CATEGORIE_PRODOTTO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CATEGORIE_PRODOTTO
--		(CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO)
--		SELECT 
--		 CAT_PRODOTTO, DESCRIZIONE, ORDINAMENTO
--		FROM C6Mart.CATEGORIE_PRODOTTO WHERE ID_ELAB = @ID_ELAB
--	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX CODICI_PROMOTORI_FITTIZI XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODICI_PROMOTORI_FITTIZI')
--	BEGIN
--		DELETE FROM C6Storico.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.CODICI_PROMOTORI_FITTIZI
--		(Rete, CodiceDA, CodiceA)
--		SELECT 
--		 Rete, CodiceDA, CodiceA
--		FROM C6Mart.CODICI_PROMOTORI_FITTIZI WHERE ID_ELAB = @ID_ELAB
--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_PIRAMIDI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_PIRAMIDI')
	--	BEGIN
	--		DELETE FROM C6Storico.CODIFICA_PIRAMIDI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.CODIFICA_PIRAMIDI
	--		(ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB)
	--		SELECT 
	--		 ID_PIRAMIDE, DESCRIZIONE, NOTE, ID_ELAB
	--		FROM C6Mart.CODIFICA_PIRAMIDI WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX CODIFICA_RISCHIO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CODIFICA_RISCHIO')
	BEGIN
		DELETE FROM C6Storico.CODIFICA_RISCHIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CODIFICA_RISCHIO
		(PROFILO, DESCRIZIONE, MIN_VAR, MAX_VAR, ID_ELAB)
		SELECT 
		 CR.PROFILO, CR.DESCRIZIONE, CR.MIN_VAR, CR.MAX_VAR, CR.ID_ELAB
		FROM C6Mart.CODIFICA_RISCHIO CR
		LEFT OUTER JOIN C6Storico.CODIFICA_RISCHIO SCR
			ON CR.PROFILO = SCR.PROFILO
		WHERE CR.ID_ELAB = @ID_ELAB AND SCR.PROFILO IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX COLORI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'COLORI')
	--	BEGIN
	--		DELETE FROM C6Storico.COLORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.COLORI
	--		(Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB)
	--		SELECT 
	--		 Tipo, Codice, Ordinamento, [Descrizione breve], [Descrizione estesa], HexColor, Red, Green, Blue, ID_ELAB
	--		FROM C6Mart.COLORI WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX CONTRATTOSEI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'CONTRATTOSEI')
	BEGIN
		DELETE FROM C6Storico.CONTRATTOSEI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.CONTRATTOSEI
		(Rete, Cod_Fiscale, PIva_Fiduciaria, 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 
		 C.Rete, C.Cod_Fiscale, C.PIva_Fiduciaria, C.Data_Sott, C.CodiceContratto, C.Cod_Agente, C.Data_Perf_Base, C.Data_Perf, C.Fascia_CPP, C.Email, C.Indirizzo, C.CAP, C.Citta, C.Prov, C.Nazione, C.Presso, C.Data_Inizio, C.Freq_Diagnosi, C.Freq_Monitor, C.Freq_DiagnosiPrec, C.Freq_MonitorPrec, C.Data_InizioConsInv, C.Data_InizioBase, C.Data_FineBase, C.Data_InizioAvanzato, C.Data_FineAvanzato, C.ProgressivoInvio, C.GenerazioneReport, C.InvioBenvenuto, C.DataUltimoInvio, C.ClienteMigrato, C.RisorseNA, C.NumSolleciti, C.Data_UltimoSollecito, C.NumRevoche, C.Data_UltimaRevoca, C.Note, @ID_ELAB
		FROM C6Mart.CONTRATTOSEI C
		LEFT OUTER JOIN C6Storico.CONTRATTOSEI SC
			ON C.Rete = SC.Rete
			AND C.Cod_Fiscale = SC.Cod_Fiscale
			AND C.CodiceContratto = SC.CodiceContratto
		WHERE SC.Rete IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX DATI_REPORT XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'DATI_REPORT')
	--	BEGIN
	--		DELETE FROM C6Storico.DATI_REPORT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.DATI_REPORT
	--		(RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, INDIRIZZO, LOCALITA, PROVINCIA, CAP, NAZIONE, FLAG_REPORT, REPORT_DIAGN, REPORT_MONIT, DATA_REPORT, REPORT_FREQ, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.DATI_REPORT WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX DETTAGLIO_ASUL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'DETTAGLIO_ASUL')
	BEGIN
		DELETE FROM C6Storico.DETTAGLIO_ASUL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.DETTAGLIO_ASUL
		(RETE, COD_FISCALE, COD_PRODOTTO, ID_CONTRATTO, COD_SOTTOPRODOTTO, COD_INTERNO, CTV, DATA_RIF, COD_ISIN_FITTIZIO, COD_ISIN_SOTT, COD_MAF_SOTT, ID_ELAB, TIPO_ELAB)
		SELECT 
		 DA.RETE, DA.COD_FISCALE, DA.COD_PRODOTTO, DA.ID_CONTRATTO, DA.COD_SOTTOPRODOTTO, DA.COD_INTERNO, DA.CTV, DA.DATA_RIF, DA.COD_ISIN_FITTIZIO, DA.COD_ISIN_SOTT, DA.COD_MAF_SOTT, DA.ID_ELAB, DA.TIPO_ELAB
		FROM C6Mart.DETTAGLIO_ASUL DA
		LEFT OUTER JOIN C6Storico.DETTAGLIO_ASUL SDA
			ON DA.RETE = SDA.RETE
			AND DA.COD_FISCALE = SDA.COD_FISCALE
			AND DA.COD_PRODOTTO = SDA.COD_PRODOTTO
			AND DA.ID_CONTRATTO = SDA.ID_CONTRATTO
			AND DA.COD_SOTTOPRODOTTO = SDA.COD_SOTTOPRODOTTO
			AND DA.COD_INTERNO = SDA.COD_INTERNO
			AND DA.CTV = SDA.CTV
			AND DA.DATA_RIF = SDA.DATA_RIF
			AND DA.COD_ISIN_FITTIZIO = SDA.COD_ISIN_FITTIZIO
			AND DA.COD_ISIN_SOTT = SDA.COD_ISIN_SOTT
			AND DA.COD_MAF_SOTT = SDA.COD_MAF_SOTT
		WHERE DA.ID_ELAB = @ID_ELAB AND SDA.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ELABORAZIONI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'ELABORAZIONI')
	BEGIN
		DELETE FROM C6Storico.ELABORAZIONI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.ELABORAZIONI
		(ID_ELAB, TIPO_ELAB, DATA_OPERAZIONE)
		SELECT 
		 E.ID_ELAB, E.TIPO_ELAB, E.DATA_OPERAZIONE
		FROM C6Mart.ELABORAZIONI E
		LEFT OUTER JOIN C6Storico.ELABORAZIONI SE
			ON E.ID_ELAB = SE.ID_ELAB
		WHERE E.ID_ELAB = @ID_ELAB AND SE.ID_ELAB IS NULL
	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_ATTACHMENT XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_ATTACHMENT')
--	BEGIN
--		DELETE FROM C6Storico.EMAIL_ATTACHMENT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.EMAIL_ATTACHMENT
--		(Attachment_Id, Email_Id, Attachment)
--		SELECT 
--		 Attachment_Id, Email_Id, Attachment
--		FROM C6Mart.EMAIL_ATTACHMENT WHERE ID_ELAB = @ID_ELAB
--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX EMAIL_PB XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'EMAIL_PB')
	--	BEGIN
	--		DELETE FROM C6Storico.EMAIL_PB WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.EMAIL_PB
	--		(RETE, CODICE, PREFISSO, FIRMA, EMAIL)
	--		SELECT 
	--		 EP.RETE, EP.CODICE, EP.PREFISSO, EP.FIRMA, EP.EMAIL
	--		FROM C6Mart.EMAIL_PB EP
	--		LEFT OUTER JOIN C6Storico.EMAIL_PB SEP
	--			ON EP.FIRMA = SEP.FIRMA
	--		WHERE EP.ID_ELAB = @ID_ELAB AND SEP.FIRMA IS NULL
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX ESITI_CARICAMENTI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'ESITI_CARICAMENTI')
	--	BEGIN
	--		DELETE FROM C6Storico.ESITI_CARICAMENTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.ESITI_CARICAMENTI
	--		(PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB)
	--		SELECT 
	--		 PROGR, DATA_INIZIO, DATA_FINE, ESITO, NOTE, ID_ELAB
	--		FROM C6Mart.ESITI_CARICAMENTI WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX GER_PROMOTORI XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GER_PROMOTORI')
	--	BEGIN
	--		DELETE FROM C6Storico.GER_PROMOTORI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.GER_PROMOTORI
	--		(RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, ID_PROMOTORE, LIVELLO, ID_MANAGER, SUBORDINATI, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.GER_PROMOTORI WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_EMAIL')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_EMAIL
		(Email_Id, Rete, Cod_Fiscale, Tipo, Data_Generazione, Inviata, Data_Invio, Data_Comunicazione_Host, ID_ELAB)
		SELECT 
		 GE.Email_Id, GE.Rete, GE.Cod_Fiscale, GE.Tipo, GE.Data_Generazione, GE.Inviata, GE.Data_Invio, GE.Data_Comunicazione_Host, GE.ID_ELAB
		FROM C6Mart.GESTIONE_EMAIL GE
		LEFT OUTER JOIN C6Storico.GESTIONE_EMAIL SGE
			ON GE.Email_Id = SGE.Email_Id
		WHERE GE.ID_ELAB = @ID_ELAB AND SGE.Email_Id IS NULL
	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_PDF_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_PDF_FTP')
--	BEGIN
--		DELETE FROM C6Storico.GESTIONE_PDF_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.GESTIONE_PDF_FTP
--		(Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip)
--		SELECT 
--		 Rete, CodiceFiscale, IdReport, TipoReport, DataGenerazione, DataInvio, DataInvioRistampa, FlagInvio, NomeFile, numeroPagine, ID_ELAB, id_Fk_zip
--		FROM C6Mart.GESTIONE_PDF_FTP WHERE ID_ELAB = @ID_ELAB
--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX GESTIONE_ZIP_FTP XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'GESTIONE_ZIP_FTP')
	BEGIN
		DELETE FROM C6Storico.GESTIONE_ZIP_FTP WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.GESTIONE_ZIP_FTP
		(id, nomefile, dataInvio, flagInvio, nomeCartella, ID_ELAB)
		SELECT 
		 GZF.id, GZF.nomefile, GZF.dataInvio, GZF.flagInvio, GZF.nomeCartella, GZF.ID_ELAB
		FROM C6Mart.GESTIONE_ZIP_FTP GZF
		LEFT OUTER JOIN C6Storico.GESTIONE_ZIP_FTP SGZF
			ON GZF.id = SGZF.id
		WHERE GZF.ID_ELAB = @ID_ELAB AND SGZF.id IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX MIFID XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'MIFID')
	BEGIN
		DELETE FROM C6Storico.MIFID WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.MIFID
		(RETE, COD_FISCALE, COMPILAZIONE, PROFILO_ASS, PROFILO_CALC, DATA_INIZIO_VAL, DATA_FINE_VAL, ID_ELAB, TIPO_ELAB)
		SELECT 
		 M.RETE, M.COD_FISCALE, M.COMPILAZIONE, M.PROFILO_ASS, M.PROFILO_CALC, M.DATA_INIZIO_VAL, M.DATA_FINE_VAL, M.ID_ELAB, M.TIPO_ELAB
		FROM C6Mart.MIFID M
		LEFT OUTER JOIN C6Storico.MIFID SM
			ON M.RETE = SM.RETE
			AND M.COD_FISCALE = SM.COD_FISCALE
		WHERE M.ID_ELAB = @ID_ELAB AND SM.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PARTITE_VIAGGIANTI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PARTITE_VIAGGIANTI')
	BEGIN
		DELETE FROM C6Storico.PARTITE_VIAGGIANTI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PARTITE_VIAGGIANTI
		(RETE, COD_FISCALE, IMPORTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.IMPORTO, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6Mart.PARTITE_VIAGGIANTI PV
		LEFT OUTER JOIN C6Storico.PARTITE_VIAGGIANTI SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_AGG XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_AGG')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_AGG WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_AGG
		(RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RETE, COD_FISCALE, COD_PRODOTTO, LIQUIDATO, INVESTITO, ID_AREA, ID_ELAB, TIPO_ELAB
		FROM C6Mart.PATRIMONIO_AGG WHERE ID_ELAB = @ID_ELAB
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_ALTRO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_ALTRO')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_ALTRO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_ALTRO
		(RETE, COD_FISCALE, QUANTITA, DESCRIZIONE, CTV, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PA.RETE, PA.COD_FISCALE, PA.QUANTITA, PA.DESCRIZIONE, PA.CTV, PA.ID_ELAB, PA.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_ALTRO PA
		LEFT OUTER JOIN C6Storico.PATRIMONIO_ALTRO SPA
			ON PA.RETE = SPA.RETE
			AND PA.COD_FISCALE = SPA.COD_FISCALE
			AND PA.QUANTITA = SPA.QUANTITA
			AND PA.DESCRIZIONE = SPA.DESCRIZIONE
			AND PA.CTV = SPA.CTV
		WHERE PA.ID_ELAB = @ID_ELAB AND SPA.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_BF XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_BF')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_BF WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_BF
		(RETE, COD_FISCALE, POSITION_ID, COD_PRODOTTO, ID_CONTRATTO, DATA_SOTTOSCRIZIONE, COD_STATO, NUM_POLIZZA, COD_MAF, COD_INTERNO, COD_SOTTOPRODOTTO, TIPO_PRODOTTO, NOME_PROGETTO, ID_AREA, DATA_OPERAZIONE, DATA_VALUTA, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, CTV_NOMINALE, VERSATO_NETTO, PARTVIA_DISINV, DATA_PARTVIA_DISINV, PARTVIA_INV, REND_SOTTOSCRIZIONE, REND_TRIMESTRE, REND_ANNO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PB.RETE, PB.COD_FISCALE, PB.POSITION_ID, PB.COD_PRODOTTO, PB.ID_CONTRATTO, PB.DATA_SOTTOSCRIZIONE, PB.COD_STATO, PB.NUM_POLIZZA, PB.COD_MAF, PB.COD_INTERNO, PB.COD_SOTTOPRODOTTO, PB.TIPO_PRODOTTO, PB.NOME_PROGETTO, PB.ID_AREA, PB.DATA_OPERAZIONE, PB.DATA_VALUTA, PB.DATA_REGOLAMENTO, PB.QUANTITA, PB.PREZZO, PB.CTV, PB.CTV_NOMINALE, PB.VERSATO_NETTO, PB.PARTVIA_DISINV, PB.DATA_PARTVIA_DISINV, PB.PARTVIA_INV, PB.REND_SOTTOSCRIZIONE, PB.REND_TRIMESTRE, PB.REND_ANNO, PB.ID_ELAB, PB.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_BF  PB
		LEFT OUTER JOIN C6Storico.PATRIMONIO_BF SPB
			ON PB.RETE = SPB.RETE
			AND PB.COD_FISCALE = SPB.COD_FISCALE
			AND PB.POSITION_ID = SPB.POSITION_ID
		WHERE PB.ID_ELAB = @ID_ELAB AND SPB.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_IMMOBILIARE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_IMMOBILIARE')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_IMMOBILIARE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_IMMOBILIARE
		(RETE, COD_FISCALE, DESCRIZIONE, TIPOLOGIA, LOCALITA, PROVINCIA, CAP, NAZIONE, VALORE_STIMATO, AFFITTO, NOTE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PI.RETE, PI.COD_FISCALE, PI.DESCRIZIONE, PI.TIPOLOGIA, PI.LOCALITA, PI.PROVINCIA, PI.CAP, PI.NAZIONE, PI.VALORE_STIMATO, PI.AFFITTO, PI.NOTE, PI.DIV_RIFERIMENTO, PI.CAMBIO, PI.ID_ELAB, PI.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_IMMOBILIARE PI
		LEFT OUTER JOIN C6Storico.PATRIMONIO_IMMOBILIARE SPI
			ON PI.RETE = SPI.RETE
			AND PI.COD_FISCALE = SPI.COD_FISCALE
			AND PI.DESCRIZIONE = SPI.DESCRIZIONE
			AND PI.TIPOLOGIA = SPI.TIPOLOGIA
			AND PI.LOCALITA = SPI.LOCALITA
			AND PI.PROVINCIA = SPI.PROVINCIA
			AND PI.CAP = SPI.CAP
			AND PI.NAZIONE = PI.NAZIONE
			AND PI.VALORE_STIMATO = SPI.VALORE_STIMATO
			AND PI.AFFITTO = SPI.AFFITTO
			AND PI.NOTE = SPI.NOTE
			AND PI.DIV_RIFERIMENTO = SPI.DIV_RIFERIMENTO
			AND PI.CAMBIO = SPI.CAMBIO
		WHERE PI.ID_ELAB = @ID_ELAB AND SPI.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PATRIMONIO_TERZI XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PATRIMONIO_TERZI')
	BEGIN
		DELETE FROM C6Storico.PATRIMONIO_TERZI WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PATRIMONIO_TERZI
		(RETE, COD_FISCALE, NUM_POLIZZA, TIPO_POLIZZA, TIPO_PRODOTTO, TIPO_PRODOTTO2, COD_PRODOTTO, COD_PRODOTTO_TERZI, INTERMEDIARIO, DATA_SOTTOSCRIZIONE, DATA_SCADENZA, FREQ_RATA, DURATA_POLIZZA, PREMIO, ALIQUOTA, DATA_SOTT_FP, DATA_REGOLAMENTO, QUANTITA, PREZZO, CTV, VERSATO_NETTO, DIV_REGOLAMENTO, CAMBIO, DESCR_GRUPPO_PRODOTTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PT.RETE, PT.COD_FISCALE, PT.NUM_POLIZZA, PT.TIPO_POLIZZA, PT.TIPO_PRODOTTO, PT.TIPO_PRODOTTO2, PT.COD_PRODOTTO, PT.COD_PRODOTTO_TERZI, PT.INTERMEDIARIO, PT.DATA_SOTTOSCRIZIONE, PT.DATA_SCADENZA, PT.FREQ_RATA, PT.DURATA_POLIZZA, PT.PREMIO, PT.ALIQUOTA, PT.DATA_SOTT_FP, PT.DATA_REGOLAMENTO, PT.QUANTITA, PT.PREZZO, PT.CTV, PT.VERSATO_NETTO, PT.DIV_REGOLAMENTO, PT.CAMBIO, PT.DESCR_GRUPPO_PRODOTTO, PT.ID_ELAB, PT.TIPO_ELAB
		FROM C6Mart.PATRIMONIO_TERZI PT
		LEFT OUTER JOIN C6Storico.PATRIMONIO_TERZI SPT
			ON PT.RETE = SPT.RETE
			AND PT.COD_FISCALE = SPT.COD_FISCALE
			AND PT.COD_PRODOTTO = SPT.COD_PRODOTTO
			AND PT.COD_PRODOTTO_TERZI = SPT.COD_PRODOTTO_TERZI
		WHERE PT.ID_ELAB = @ID_ELAB AND SPT.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_MOD XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_MOD')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_MOD WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_MOD
		(RETE, COD_FISCALE, ID_AREA, NOME_PROGETTO, TIPO_PROGETTO, PERC_AREA, CTV_PROGETTO, CTV_AREA, ORIZZ_TEMP, CTV_TOTALE, STATO_CONSULENZA, DATA_STATO_CONS, DATA_MIGR_CONS, ID_CONTRATTO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PM.RETE, PM.COD_FISCALE, PM.ID_AREA, PM.NOME_PROGETTO, PM.TIPO_PROGETTO, PM.PERC_AREA, PM.CTV_PROGETTO, PM.CTV_AREA, PM.ORIZZ_TEMP, PM.CTV_TOTALE, PM.STATO_CONSULENZA, PM.DATA_STATO_CONS, PM.DATA_MIGR_CONS, PM.ID_CONTRATTO, PM.ID_ELAB, PM.TIPO_ELAB
		FROM C6Mart.PIRAMIDE_MOD PM
		LEFT OUTER JOIN C6Storico.PIRAMIDE_MOD SPM
			ON PM.RETE = SPM.RETE
			AND PM.COD_FISCALE = SPM.COD_FISCALE
			AND PM.ID_AREA = SPM.ID_AREA
			AND PM.NOME_PROGETTO = SPM.NOME_PROGETTO
		WHERE PM.ID_ELAB = @ID_ELAB AND SPM.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PIRAMIDE_VERT XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PIRAMIDE_VERT')
	BEGIN
		DELETE FROM C6Storico.PIRAMIDE_VERT WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PIRAMIDE_VERT
		(RETE, COD_FISCALE, ID_AREA, CTV_AREA, ID_ELAB, TIPO_ELAB)
		SELECT 
		 PV.RETE, PV.COD_FISCALE, PV.ID_AREA, PV.CTV_AREA, PV.ID_ELAB, PV.TIPO_ELAB
		FROM C6Mart.PIRAMIDE_VERT PV
		LEFT OUTER JOIN C6Storico.PIRAMIDE_VERT SPV
			ON PV.RETE = SPV.RETE
			AND PV.COD_FISCALE = SPV.COD_FISCALE
			AND PV.ID_AREA = SPV.ID_AREA
		WHERE PV.ID_ELAB = @ID_ELAB AND SPV.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX PREVIDENZIALE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'PREVIDENZIALE')
	BEGIN
		DELETE FROM C6Storico.PREVIDENZIALE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.PREVIDENZIALE
		(RETE, COD_FISCALE, ANNO_PENSIONE, ETA_PENSIONE, TOT_CONSUMI_ATTESI, TOT_REDDITO_ANNUO, REDDITO_CONSUMI_ESS, PENSIONE_ATTESA_, RENDITA_PREV_COMPL, RENDITA_ASS, REDDITO_CONSUMI_SEC, RENDITA_ASS_TRAD, RENDITA_ASS_UNIT, RENDITA_IMMOB, ALTRE_RENDITE, DIV_RIFERIMENTO, CAMBIO, ID_ELAB, TIPO_ELAB)
		SELECT 
		 P.RETE, P.COD_FISCALE, P.ANNO_PENSIONE, P.ETA_PENSIONE, P.TOT_CONSUMI_ATTESI, P.TOT_REDDITO_ANNUO, P.REDDITO_CONSUMI_ESS, P.PENSIONE_ATTESA_, P.RENDITA_PREV_COMPL, P.RENDITA_ASS, P.REDDITO_CONSUMI_SEC, P.RENDITA_ASS_TRAD, P.RENDITA_ASS_UNIT, P.RENDITA_IMMOB, P.ALTRE_RENDITE, P.DIV_RIFERIMENTO, P.CAMBIO, P.ID_ELAB, P.TIPO_ELAB
		FROM C6Mart.PREVIDENZIALE P
		LEFT OUTER JOIN C6Storico.PREVIDENZIALE SP
			ON P.RETE = SP.RETE
			AND P.COD_FISCALE = SP.COD_FISCALE
		WHERE P.ID_ELAB = @ID_ELAB AND SP.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_AGGREGATO XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_AGGREGATO')
	BEGIN
		DELETE FROM C6Storico.RISCHIO_AGGREGATO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.RISCHIO_AGGREGATO
		(RETE, COD_FISCALE, COD_AGGREG, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, BENEFICIO, COPERTURA, CTV_AGGREG, ID_ELAB, TIPO_ELAB)
		SELECT 
		 RA.RETE, RA.COD_FISCALE, RA.COD_AGGREG, RA.VAR_ASSOLUTO_PTF, RA.VAR_PERC_PTF, RA.CVAR_ASSOLUTO_PTF, RA.CVAR_PERC_PTF, RA.MCVAR, RA.MCVARP, RA.BENEFICIO, RA.COPERTURA, RA.CTV_AGGREG, RA.ID_ELAB, RA.TIPO_ELAB
		FROM C6Mart.RISCHIO_AGGREGATO RA
		LEFT OUTER JOIN C6Storico.RISCHIO_AGGREGATO SRA
			ON RA.RETE = SRA.RETE
			AND RA.COD_FISCALE = SRA.COD_FISCALE
			AND RA.COD_AGGREG = SRA.COD_AGGREG
		WHERE RA.ID_ELAB = @ID_ELAB AND SRA.RETE IS NULL
	END
	--XXXXXXXXXXXXXXXXXXXXXXXX RISCHIO_DETTAGLIO XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'RISCHIO_DETTAGLIO')
	--	BEGIN
	--		DELETE FROM C6Storico.RISCHIO_DETTAGLIO WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.RISCHIO_DETTAGLIO
	--		(RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB)
	--		SELECT 
	--		 RETE, COD_FISCALE, COD_AGGREG, CHIAVE_PRODOTTO, VAR_ASSOLUTO_PTF, VAR_PERC_PTF, CVAR_ASSOLUTO_PTF, CVAR_PERC_PTF, MCVAR, MCVARP, TIPO_COPERTURA, CTV_AGGREG, MERCATO_CONTRATT, DIV_CONTRATT, ID_ELAB, TIPO_ELAB
	--		FROM C6Mart.RISCHIO_DETTAGLIO WHERE ID_ELAB = @ID_ELAB
	--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX STRUTTURA_RETE XXXXXXXXXXXXXXXXXXXXXXXX--
	IF(@NomeTabella IS NULL OR @NomeTabella = 'STRUTTURA_RETE')
	BEGIN
		DELETE FROM C6Storico.STRUTTURA_RETE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
		INSERT INTO C6Storico.STRUTTURA_RETE
		(Rete, PB, CognomeNomePB, SPV, CognomeNomeSPV, RM, CognomeNomeRM, DM, CognomeNomeDM, AM, CognomeNomeAM, Livello, ID_ELAB, TIPO_ELAB)
		SELECT 
		 SR.Rete, SR.PB, SR.CognomeNomePB, SR.SPV, SR.CognomeNomeSPV, SR.RM, SR.CognomeNomeRM, SR.DM, SR.CognomeNomeDM, SR.AM, SR.CognomeNomeAM, SR.Livello, SR.ID_ELAB, SR.TIPO_ELAB
		FROM C6Mart.STRUTTURA_RETE SR
		LEFT OUTER JOIN C6Storico.STRUTTURA_RETE SSR
			ON SR.Rete = SSR.Rete
			AND SR.PB = SSR.PB
		WHERE SR.ID_ELAB = @ID_ELAB AND SSR.Rete IS NULL
	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX TABELLESTORICIZZATE XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TABELLESTORICIZZATE')
--	BEGIN
--		DELETE FROM C6Storico.TABELLESTORICIZZATE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TABELLESTORICIZZATE
--		(Nome)
--		SELECT 
--		 Nome
--		FROM C6Mart.TABELLESTORICIZZATE WHERE ID_ELAB = @ID_ELAB
--	END
	--XXXXXXXXXXXXXXXXXXXXXXXX TESTO_LETTERA_ACCETTAZIONE XXXXXXXXXXXXXXXXXXXXXXXX--
	--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TESTO_LETTERA_ACCETTAZIONE')
	--	BEGIN
	--		DELETE FROM C6Storico.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	--		INSERT INTO C6Storico.TESTO_LETTERA_ACCETTAZIONE
	--		(ID, TESTO, DESCRIZIONE, ID_ELAB)
	--		SELECT 
	--		 ID, TESTO, DESCRIZIONE, ID_ELAB
	--		FROM C6Mart.TESTO_LETTERA_ACCETTAZIONE WHERE ID_ELAB = @ID_ELAB
	--	END
--	--XXXXXXXXXXXXXXXXXXXXXXXX TIPO_EMAIL XXXXXXXXXXXXXXXXXXXXXXXX--
--	IF(@NomeTabella IS NULL OR @NomeTabella = 'TIPO_EMAIL')
--	BEGIN
--		DELETE FROM C6Storico.TIPO_EMAIL WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
--		INSERT INTO C6Storico.TIPO_EMAIL
--		(Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo)
--		SELECT 
--		 Tipo, Descrizione, E_From, E_To, E_Cc, E_Ccn, E_Subject, Testo
--		FROM C6Mart.TIPO_EMAIL WHERE ID_ELAB = @ID_ELAB
--	END
-- XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX FINE TABELLE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	-- XX -- XX -- XX -- XX  AGGIORNAMENTO DATI C6Mart.TabelleStoricizzate XX -- XX -- XX -- XX --
	IF(@NomeTabella IS NOT NULL)
	BEGIN 
		UPDATE C6Mart.TabelleStoricizzate
		SET 
			FINE = GETDATE(),
			DURATA = DATEDIFF(SECOND ,INIZIO, GETDATE())
		WHERE NOME = @NomeTabella
	END
END