CREATE procedure [C6Mart].[SRV_STORICIZZAZIONE_GLOBAL_ERROR]
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') 
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_STORICIZZAZIONE_GLOBAL_ERROR',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	SELECT @MIN_ID_ELAB = ISNULL(MAX(ID_ELAB),0)
	FROM C6MART.ELABORAZIONI
	WHERE DATEDIFF(DAY,DATA_OPERAZIONE,GETDATE()) > @TempoStoricoC6
	SET @ID_ELAB = C6MART.GETIDELAB()
	DELETE FROM C6STORICO.GLOBAL_ERROR WHERE ID_ELAB >= @ID_ELAB OR ID_ELAB < @MIN_ID_ELAB
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'DELETE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR'
		)
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'SRV_STORICIZZAZIONE_GLOBAL_ERROR',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	INSERT INTO C6STORICO.GLOBAL_ERROR
	(ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB)
	SELECT
	 ID, Cancel, ErrorCode, ErrorDescription, EventHandlerStartTime, LocaleID, Propagate, SourceDescription, SourceID, SourceName, Time, ID_ELAB
	FROM dbo.GLOBAL_ERROR WHERE ID_ELAB = @ID_ELAB
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'SRV_STORICIZZAZIONE_GLOBAL_ERROR'
		)
	TRUNCATE TABLE dbo.GLOBAL_ERROR
END