-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE procedure [C6Mart].[RP_DM_PATRIMONIO_ALTRO_20160615]
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 (
		'RP_DM_PATRIMONIO_ALTRO',
		GETDATE(),
		'Elaborazione giornaliera'
	)
TRUNCATE TABLE C6MART.PATRIMONIO_ALTRO
INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])
SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
UNION ALL
SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	--(dettAltriProd.valoreStimato) as valore,
	SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
	@ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE <> 'LRNLCU73D28I470U'
	--inizio intervento
	--Fcianfa 25/08/2015 intervento segnalato da ticket n4t4, per calcolare il ctv viene erroneamente effettuata una somma che fa si che sul report per ogni riga viene riportato il totale.
	INSERT INTO [C6Mart].[PATRIMONIO_ALTRO]
	(
--chiaveClientePB
--	,
[RETE]
	,[COD_FISCALE]
	,[QUANTITA]
	,[DESCRIZIONE]
	,[CTV]
	,[ID_ELAB]
	,[TIPO_ELAB])
SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	dettPatrAz.numQuote AS QUANTITA,
	dettPatrAz.denominazione AS DESCRIZIONE, 
	--(dettPatrAz.valoreStimato) as valore,
	dettPatrAz.valoreStimato AS CTV,
	--SUM(dettPatrAz.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
--INTO C6MART.RP_PATRIMONIO_ALTRO
FROM 
	C6Staging.RP_DettPatrAziendale dettPatrAz,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE = 'LRNLCU73D28I470U'
UNION ALL
SELECT
--	VCONTRATTI.chiaveClientePB,
	VCONTRATTI.rete AS RETE,
	VCONTRATTI.COD_FISCALE,
	NULL AS QUANTITA,
	dettAltriProd.descrizione AS DESCRIZIONE, 
	dettAltriProd.valoreStimato AS CTV,
	--SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb) AS CTV,
    @ID_ELAB AS ID_ELAB,
	@TIPO_ELAB AS TIPO_ELAB
FROM 
	C6Staging.RP_DettAltriProdotti dettAltriProd,
	C6Staging.RP_PatrimonioTerzi patrTerzi,
	C6Mart.VCONTRATTI
WHERE
	dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi
AND
	patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
	and VCONTRATTI.COD_FISCALE = 'LRNLCU73D28I470U'
--fine intervento 
--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	RP_DettProdottiTerzi.numQuote AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PB_E6F18 AS CTV, (sto vedendo con Serena)
--	NULL AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
--INNER JOIN C6Staging.RP_DettProdottiTerzi
--ON RP_PatrimonioTerzi.chiaveProdottoTerzi = RP_DettProdottiTerzi.chiaveProdottoTerzi
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_E6F18
--UNION
--SELECT
--	VCONTRATTI.chiaveClientePB,
--	VCONTRATTI.rete AS RETE,
--	VCONTRATTI.COD_FISCALE,
--	NULL AS QUANTITA,
--	--SUBSTRING(ALL_PATR_TERZI.DENOMINAZIONE_PN_F87B4,1,50) AS DESCRIZIONE, (sembra non essere utilizzato)
--	NULL AS DESCRIZIONE,
--	--ALL_PATR_TERZI.PATRIMONIO_ALTRO_PN_F87B4 AS CTV, (sto vedendo con Serena)
--	NULL  AS CTV,
--	@ID_ELAB AS ID_ELAB,
--	@TIPO_ELAB AS TIPO_ELAB
--FROM C6Staging.RP_PatrimonioTerzi
--INNER JOIN VCONTRATTI
--ON RP_PatrimonioTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB
----WHERE ALL_PATR_TERZI.CHIAVE_THR = ALL_PATR_TERZI.CHIAVE_F87B4
	-- Log esecuzione
	UPDATE
		LOG_ESECUZIONE
	SET
		Fine = GETDATE(),
		Tipo = 'INSERT',
		Righe = @@ROWCOUNT
	WHERE
		Nome = 'RP_DM_PATRIMONIO_ALTRO' AND
		Inizio = (
			SELECT
				MAX(Inizio)
			FROM
				LOG_ESECUZIONE
			WHERE
				Nome = 'RP_DM_PATRIMONIO_ALTRO'
		)
END