-- Schema: C6Mart
-- Stored Procedure: DM_ANAG_CONTRATTI

-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_ANAG_CONTRATTI]
AS
BEGIN

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

	SET @ID_ELAB = C6MART.GETIDELAB()
	SET @TIPO_ELAB = C6MART.GETTIPOELAB()

	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'DM_ANAG_CONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)

	TRUNCATE TABLE C6MART.ANAG_CONTRATTI

	INSERT INTO [C6Mart].[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 
		SPB_CONTR_SINTESI.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		CAST(ROW_NUMBER() OVER (ORDER BY SPB_CONTR_SINTESI.CODICEFISCALE) AS VARCHAR(64)) AS COD_PRODOTTO,
		NULL AS INTERMEDIARIO,
		SPB_CONTR_SINTESI.DATADISOTTOSCRIZIONE AS DATA_SOTTOSCRIZIONE,
		NULL AS DATA_PERF,
		NULL AS DATA_CHIUSURA,
		SPB_CONTR_SINTESI.CODICESTATO AS STATO,
		SPB_CONTR_SINTESI.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_CONTR_SINTESI.TIPOPRODOTTO AS TIPO_PRODOTTO,
		SPB_CONTR_SINTESI.CODICEINTERNO AS COD_INTERNO,
		NULL AS COD_MANDATO,
		SPB_CONTR_SINTESI.CONTO AS COD_CC,
		SPB_CONTR_SINTESI.RUBRICATO AS RUBRICATO,
		SPB_CONTR_SINTESI.CUSTODIAGARANZIA AS CUSTODIA_GAR,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM C6STAGING.SPB_CONTR_SINTESI

	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_ANAG_CONTRATTI' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_ANAG_CONTRATTI'
		)

END



