-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_DETTAGLIO_ASUL]
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_DETTAGLIO_ASUL',
		GETDATE(),
		'Elaborazione giornaliera'
	)
	TRUNCATE TABLE C6MART.DETTAGLIO_ASUL
	INSERT INTO [C6Mart].[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 --********* ATTENZIONE ALLA GESTIONE DEI PRODOTTI ASSICURATIVI SKANDIA
		   --********* DA AGGIUNGERE
		   --********* SI TROVANO CON CONDIZIONE COD_ISIN_SOTTOSTANTE IS NOT NULL
		   --********* ENTRO SUL CATALOGO CON COD_ISIN_SOTTOSTANTE, COD_MAF_SOTTOSTANTE  
		SPB_CONTR_SINTESI.RETE AS RETE,
		SPB_CONTR_SINTESI.CODICEFISCALE AS COD_FISCALE,
		ISNULL(
			dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPOPRODOTTO, SPB_ASS_UNIT.CODICEINTERNO, SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE, SPB_ASS_UNIT.CODICEISINSOTTOSTANTE, SPB_ASS_UNIT.CODICESOTTOPRODOTTO), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODICECONTRATTO AS ID_CONTRATTO,
		SPB_ASS_UNIT.CODICESOTTOPRODOTTO AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODICEINTERNO AS COD_INTERNO,
		SPB_ASS_UNIT.CONTROVALORE AS CTV,
		SPB_ASS_UNIT.DATADIRIFERIMENTO AS DATA_RIF,
		SPB_ASS_UNIT.ISINFITTIZIO AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.CODICEISINSOTTOSTANTE AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGING.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGING.SPB_ASS_UNIT 
		ON SPB_CONTR_SINTESI.CODICECONTRATTO = SPB_ASS_UNIT.CODICECONTRATTO 
	LEFT OUTER JOIN
		C6STAGING.RP_CATALOGOPRODOTTI CAT
		ON SPB_ASS_UNIT.CODICEINTERNO = CAT.CODINTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CAT.CODSOTTOPRODOTTO 
        AND VISIBILITA=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and codisin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CAT.CODADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CAT.CODMAF
			)
		)
		/*
		C6STAGING.CATITEMREF 
		ON SPB_ASS_UNIT.CODICEINTERNO = CATITEMREF.COD_INTERNO 
		AND SPB_ASS_UNIT.CODICESOTTOPRODOTTO = CATITEMREF.COD_SOTTOPRODOTTO 
        AND isvisible=1 
		AND (SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = ''and cod_isin='$' OR (
			SPB_ASS_UNIT.CODICEISINSOTTOSTANTE = CATITEMREF.COD_ADEGUATEZZA AND 
			SPB_ASS_UNIT.CODICEMAFSOTTOSTANTE = CATITEMREF.COD_MAF
			)
		)*/
	WHERE 
		SPB_CONTR_SINTESI.CTV <> 0
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'DM_DETTAGLIO_ASUL' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_DETTAGLIO_ASUL'
		)
END