-- Schema: C6Mart
-- Stored Procedure: DM_CREA_POSITIONID

-- =============================================
-- AUTHOR:		<ALESSANDRO TRINGALI,,NAME>
-- CREATE DATE:  10/05/2010
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[DM_CREA_POSITIONID]
AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

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

	UPDATE    
C6Staging.SPB_CONTR_SINTESI

	SET       
		POSITIONID = 
             [C6STAGING].[INFO_DAPRODOTTOCSACATALOGO] --DBO.INFO_DAPRODOTTOCSACATALOGO
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				--V ISIN per ASU2
				ISNULL(ISIN,''), 
				CODICESOTTOPRODOTTO
				) 
		--END
        + 
			DBO.CREA_POSITIONID
				(
				TIPOPRODOTTO, 
				CODICEINTERNO, 
				CODICEMAF, 
				'', 
				CODICESOTTOPRODOTTO, 
				CODICECONTRATTO, -- VERIFICARNE LA CORRETTEZZA
				NUMEROPOLIZZA, 
				CONTO,
                RUBRICATO, 
				CUSTODIAGARANZIA, 
				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 = 'DM_CREA_POSITIONID' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'DM_CREA_POSITIONID'
		)

END