CREATE procedure [C6Staging].[RP_CREA_POSITIONID_CONSULENZA_20161223]
AS
BEGIN
		-- Log esecuzione
	INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_CREA_POSITIONID_CONSULENZA',
		GETDATE(),
		'Elaborazione Giornaliero'
	)
SELECT distinct
		TIPOPRODOTTO,
		CODINTERNO,
		CODMAF,
		--Inizio intervento Omnia
		--CASE WHEN TIPOPRODOTTO = 'ASU2' THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
--INIZIO INTERVENTO MIGRAZIONE ASU3
--		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') THEN ISNULL(CODISIN,'') ELSE '' END AS CODISIN,
		CASE WHEN TIPOPRODOTTO in ('ASU2','GP') OR CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(CODISIN,'') 
			 ELSE '' END AS CODISIN,
--FINE INTERVENTO MIGRAZIONE ASU3		
		--Fine intervento Omnia
		CODSOTTOPRODOTTO,
		position_id
INTO #TAB1
FROM C6Staging.RP_CONSULENZA	
UPDATE  #TAB1
	SET position_id = 	  
				 --DBO.INFO_DAPRODOTTOCSACATALOGO (       
				   C6STAGING.RP_INFO_DAPRODOTTOCSACATALOGO (
						TIPOPRODOTTO, 
						CODINTERNO, 
						CODMAF, 			
						CODISIN,
						CODSOTTOPRODOTTO
				) 
--DECLARE @CNTNULL as int
--SELECT @CNTNULL = COUNT(*) FROM #TAB1 WHERE isnull(position_id,'') = ''
--
--
--IF @CNTNULL = 0
	UPDATE 	C6Staging.RP_CONSULENZA
			SET POSITION_ID = t.POSITION_ID + DBO.CREA_POSITIONID (
								c.TIPOPRODOTTO, 
								c.CODINTERNO, 
								c.CODMAF, 
--INIZIO INTERVENTO MIGRAZIONE ASU3
--								'', 
								CASE WHEN C.CODINTERNO in ('RV','RM', 'RS','RB') THEN ISNULL(c.CODISIN,'') 
								ELSE '' END,
--FINE INTERVENTO MIGRAZIONE ASU3								
								c.CODSOTTOPRODOTTO, 
								c.CODCONF, 
								c.NUMPOLIZZA, 
								c.CONTO,
								c.RUBRICATO, 
								c.CUSTGAR,
								c.TERMID,
								cast(c.ANNO as decimal(3,0)),
								cast(c.PROG as decimal(9,0))
		)	
	 FROM   C6Staging.RP_CONSULENZA c
			left join #TAB1 t 
			ON  isnull(t.TIPOPRODOTTO,'')=isnull(c.TIPOPRODOTTO,'')
			AND isnull(t.CODINTERNO,'')=isnull(c.CODINTERNO,'')
			AND isnull(t.CODMAF,'')=isnull(c.CODMAF,'')
			--Inizio intervento Omnia
--INIZIO INTERVENTO MIGRAZIONE ASU3
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO = 'ASU2' THEN ISNULL(c.CODISIN,'') ELSE '' END 
			--AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2', 'GP') THEN ISNULL(c.CODISIN,'') ELSE '' END 
			AND t.CODISIN= CASE WHEN c.TIPOPRODOTTO in ('ASU2','GP') OR c.CODINTERNO in ('RV','RM', 'RS','RB') 
			THEN ISNULL(c.CODISIN,'') 
			ELSE '' END 
--FINE INTERVENTO MIGRAZIONE ASU3					
			--Fine intervento Omnia
			AND isnull(t.CODSOTTOPRODOTTO,'')=isnull(c.CODSOTTOPRODOTTO,'')
	 --WHERE c.position_id = '' and  t.position_id is not null
DECLARE @CNT as int
SELECT @CNT = COUNT(*) FROM C6Staging.RP_CONSULENZA WHERE isnull(position_id,'') <> ''
-- Log esecuzione
UPDATE
	LOG_ESECUZIONE
SET
	Fine = GETDATE(),
	Tipo = 'UPDATE',
	Righe = @CNT
WHERE
	Nome = 'RP_CREA_POSITIONID_CONSULENZA' AND
	Inizio = (
		SELECT
			MAX(Inizio)
		FROM
			LOG_ESECUZIONE
		WHERE
			Nome = 'RP_CREA_POSITIONID_CONSULENZA'
	)
drop table 	#TAB1	
END