--
--select * from c6stagingperiodico.spb_contr_sintesi
--where positionId is null
-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6StagingPeriodico].[ST_CREA_POSITIONID_pre_selective]
AS
BEGIN
	SET NOCOUNT ON;
	-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'ST_CREA_POSITIONID_pre_selective',
		GETDATE(),
		'Elaborazione trimestrale'
	)
	UPDATE    
		C6StagingPeriodico.SPB_CONTR_SINTESI
	SET       
		POSITIONID = 
--		CASE 
--			WHEN TIPPROD = 'CC' THEN ''   --MODIFICA TRINGALI
--			ELSE 
             [C6StagingPeriodico].[Info_DaProdottoCSaCatalogo] --dbo.Info_DaProdottoCSaCatalogo
				(
				TIPPROD, 
				CODINT, 
				MAF, 
				--V ISIN per ASU2
				CASE WHEN ISIN = 'NA' THEN '' ELSE ISIN END, 
				SUBPROD
				) 
		--END
        + 
			dbo.Crea_positionID
				(
				TIPPROD, 
				CODINT, 
				MAF, 
				'', 
				SUBPROD, 
				CODCONF, -- VERIFICARNE LA CORRETTEZZA
				NUMPOL, 
				CONTO,
                RUBR, 
				CUSTGAR, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3))) = '' THEN ''
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 3) AS varchar(8))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 2) AS decimal(3, 0))
				END, 
				CASE
					WHEN PCTKEY IS NULL OR PCTKEY = '' OR LTRIM(RTRIM(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1))) = '' THEN 0
					ELSE CAST(PARSENAME(REPLACE(PCTKEY, '/', '.'), 1) AS decimal(9, 0))
				END
				)
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'UPDATE',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'ST_CREA_POSITIONID_pre_selective' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'ST_CREA_POSITIONID_pre_selective'
		)
END