-- =============================================  
-- Author:  <Author,,Name>  
-- Create date: <Create Date,,>  
-- Description: <Description,,>  
-- =============================================  
CREATE procedure [C6MartPeriodico].[RP_DM_PATRIMONIO_ALTRO]  
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_PERIODICO  
  (Nome, Inizio, Nota)  
 VALUES (  
  'RP_DM_PATRIMONIO_ALTRO',  
  GETDATE(),  
  'Elaborazione trimestrale'  
 )  
TRUNCATE TABLE C6MartPeriodico.PATRIMONIO_ALTRO  
INSERT INTO [C6MartPeriodico].[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, dettPatrAz.denominazione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodico.RP_DettPatrAziendale dettPatrAz,  
 C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,  
 [C6MartPeriodico].[RP_vContrattiPerGenerazioneReport] VCONTRATTI  
WHERE  
 dettPatrAz.ChiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
UNION ALL  
SELECT  
 VCONTRATTI.rete AS RETE,  
 VCONTRATTI.COD_FISCALE,  
 NULL AS QUANTITA,  
 dettAltriProd.descrizione AS DESCRIZIONE,   
 SUM(dettAltriProd.valoreStimato)over(partition by patrTerzi.chiaveclientepb, dettAltriProd.descrizione) AS CTV,  
 @ID_ELAB AS ID_ELAB,  
 @TIPO_ELAB AS TIPO_ELAB  
FROM   
 C6StagingPeriodico.RP_DettAltriProdotti dettAltriProd,  
 C6StagingPeriodico.RP_PatrimonioTerzi patrTerzi,  
 C6Mart.VCONTRATTI  
WHERE  
 dettAltriProd.chiaveProdottoTerzi = patrTerzi.chiaveProdottoTerzi  
AND  
 patrTerzi.chiaveClientePB = VCONTRATTI.chiaveClientePB  
 -- Log esecuzione  
 UPDATE  
  LOG_ESECUZIONE_PERIODICO  
 SET  
  Fine = GETDATE(),  
  Tipo = 'INSERT',  
  Righe = @@ROWCOUNT  
 WHERE  
  Nome = 'RP_DM_PATRIMONIO_ALTRO' AND  
  Inizio = (  
   SELECT  
    MAX(Inizio)  
   FROM  
    LOG_ESECUZIONE_PERIODICO  
   WHERE  
    Nome = 'RP_DM_PATRIMONIO_ALTRO'  
  )  
END