-- Schema: C6MartPeriodico
-- Stored Procedure: DM_DETTAGLIO_ASUL_pre_selective




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

	SET NOCOUNT ON;

	DECLARE @ID_ELAB INT
	DECLARE @TIPO_ELAB VARCHAR(1)

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

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

	TRUNCATE TABLE C6MARTPERIODICO.DETTAGLIO_ASUL

	INSERT INTO [C6MartPeriodico].[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.CODFIS AS COD_FISCALE,
		ISNULL(
			dbo.Info_DaProdottoCSaCatalogo(SPB_CONTR_SINTESI.TIPPROD, SPB_ASS_UNIT.CODINT, SPB_ASS_UNIT.MAF, '', SPB_ASS_UNIT.SUBPROD), 
			SUBSTRING(SPB_CONTR_SINTESI.POSITIONID, 1, 57)) AS COD_PRODOTTO,
		SPB_ASS_UNIT.CODCONF AS ID_CONTRATTO,
		SPB_ASS_UNIT.SUBPROD AS COD_SOTTOPRODOTTO,
		SPB_ASS_UNIT.CODINT AS COD_INTERNO,
		SPB_ASS_UNIT.CTV AS CTV,
		CASE
			WHEN ISDATE(SPB_ASS_UNIT.DTRIFE) = 0 THEN NULL
			ELSE CAST(CAST(SPB_ASS_UNIT.DTRIFE AS VARCHAR(8)) AS DATETIME)
		END AS DATA_RIF,
		SPB_ASS_UNIT.ISINFIT AS COD_ISIN_FITTIZIO,
		SPB_ASS_UNIT.ISIN AS COD_ISIN_SOTT,
		SPB_ASS_UNIT.MAF AS COD_MAF_SOTT,
		@ID_ELAB AS ID_ELAB,
		@TIPO_ELAB AS TIPO_ELAB
	FROM 
		C6STAGINGPERIODICO.SPB_CONTR_SINTESI 
	INNER JOIN
		C6STAGINGPERIODICO.WSEIUL AS SPB_ASS_UNIT
		ON SPB_CONTR_SINTESI.CODCONF = SPB_ASS_UNIT.CODCONF
	LEFT OUTER JOIN
		C6STAGING.CATITEMREF 
		ON SPB_ASS_UNIT.CODINT = CATITEMREF.COD_INTERNO 
		AND SPB_ASS_UNIT.SUBPROD = CATITEMREF.COD_SOTTOPRODOTTO 
		AND (LTRIM(RTRIM(SPB_ASS_UNIT.ISIN)) = '' --SPB_ASS_UNIT.ISIN = '            ' 
                 OR (
						SPB_ASS_UNIT.ISIN = CATITEMREF.COD_ADEGUATEZZA AND
						SPB_ASS_UNIT.MAF = CATITEMREF.COD_MAF
					)
				)
    WHERE SPB_CONTR_SINTESI.tipprod ='ASUL'
		AND SPB_ASS_UNIT.DTTRIM = (
			SELECT
				MAX(DTTRIM)
			FROM
				C6STAGINGPERIODICO.WSEIUL
		)
	AND CATITEMREF.isvisible = 1

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

END





