﻿CREATE procedure [wh].[ProduceMaladetti]
as 
begin
truncate table 	wh.Maledetti
insert into wh.Maledetti --70 minutes
(
[i_CodiceFiscale]
      ,[i_Rete]
      ,[Rete]
      ,[NomeRete]
      ,[Agente]
      ,[CognomeAgente]
      ,[NomeAgente]
      ,[IndirizzoAgente]
      ,[CapAgente]
      ,[CittaAgente]
      ,[TelefonoAgente]
      ,[CodiceFiscale]
      ,[CognomeCliente]
      ,[NomeCliente]
      ,[ProfiloIsAct]
      ,[PatrimonioNonRappresentabile]
      ,[PartiteViaggiantiDisinv]
      ,[PartiteViaggiantiInv]
      ,[ContoCorrente]
      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
      ,[RisorseNonAssociate]
      ,[Patrimonioaltroctv]
      ,[Patrimonioimmobiliarectv]
      ,[PatrimonioTerzictv]
      ,[PatrimonioTerziCtvAlNettoContoCorrente]
      ,[PatrimonioTerziContoCorrente]
      ,[Patrimoniobancafideuramctv]
      ,[Patrimoniocomplessivototalectv]
      ,[NumeroIntermediari]
      ,[CodiceContratto]
      ,[tip_contratto]
      ,[contrattoold]
      ,[NoMonitoraggio]
      ,[descrizioneDiagnosi]
      ,[idModelloDiagnosi]
      ,[idReportDiagnosi]
      ,[descrizioneMonitoraggio]
      ,[idReportMonitoraggio]
      ,[idModelloMonitoraggio]
      ,[AdesioneSuccessivaAvanzato]
      ,[VaRRisorseNonAssociate]
      ,[CoperturaRisorseNonAssociate]
      ,[VaRTotaleRisorseFinanziarie]
      ,[CoperturaTotaleRisorseFinanziarie]
      ,[IdReportPDFDiagnosi]
      ,[IdReportPDFMonitoraggio]
	  )
	SELECT  DISTINCT
			contratti.Cod_Fiscale as i_CodiceFiscale
			,contratti.Rete as i_Rete
			--DATI COMUNI
			--RETE
			,contratti.Rete
			,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' WHEN UPPER(contratti.Rete) = 'S' THEN 'Sanpaolo Invest' ELSE 'IW Private Inv.' END NomeRete
			--AGENTE	
			,contratti.Cod_Agente Agente
			,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'') ELSE '' END) CognomeAgente
			,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Nome,'') ELSE '' END) NomeAgente
			,isnull(promotori.Indirizzo,'') IndirizzoAgente
			,isnull(promotori.Cap,'') CapAgente
			,isnull(promotori.Localita,'') CittaAgente
			,isnull(promotori.TEL_Recapito,'') TelefonoAgente
			--CLIENTE
			,contratti.Cod_Fiscale CodiceFiscale
			,clienti.Cognome CognomeCliente
			,clienti.nome NomeCliente
			--PATRIMONI CLIENTE
			,CASE WHEN isnull( MIFID.SCADUTO,1) = 1 THEN 0 ELSE 1 END ProfiloIsAct
 			,isnull(PatrNonRapprAsset.Controvalore,0) as PatrimonioNonRappresentabile
			,isnull(patrimonioBF.PartiteViaggiantiDisinv,0) as PartiteViaggiantiDisinv
			,isnull(partiteViaggianti.Importo,0) as PartiteViaggiantiInv
			,isnull(patrimonioBF.ContoCorrente,0) as  ContoCorrente
			,isnull(patrimonioBF.PatrimonioSenzaCC,0) as PatrimonioBancaFideuramCtvAlNettoContoCorrente 
			,isnull(patrimonioBF.PatrimonioNonAssociato,0) as  RisorseNonAssociate
			,isnull(patrimonioAltro.Patrimonioaltro,0) as Patrimonioaltroctv
			,isnull(patrimonioImmobiliare.PatrimonioImmob,0) as Patrimonioimmobiliarectv
			,isnull(patrimonioTerzi.ctv,0) as PatrimonioTerzictv
			,isnull(patrimonioTerzi.ControvaloreSenzaCC,0) as PatrimonioTerziCtvAlNettoContoCorrente 
			,isnull(patrimonioTerzi.ControvaloreCC,0) as PatrimonioTerziContoCorrente
			,isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv
			,(isnull(patrimonioBF.ctv,0) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv
			,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari
			--CONTRATTO
			,contratti.CodiceContratto CodiceContratto
			,contratti.tip_contratto AS tip_contratto 
			,0 AS contrattoold
			--*************************************************
			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
				or isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
				or monitReport.cod_fiscale is null 
				THEN 1
				ELSE 0
			END AS NoMonitoraggio
			,'Diagnosi' as descrizioneDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
				ELSE -1
			END AS idModelloDiagnosi
			,CASE 
				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
				ELSE -1
			END AS idReportDiagnosi
			,'Monitoraggio' as descrizioneMonitoraggio
			,4 as idReportMonitoraggio--4
			,CASE isnull(tip_contratto,0) 
					WHEN 0 THEN 12--12
					WHEN 1 THEN 12--12
					WHEN 2 THEN 13--13
			END AS idModelloMonitoraggio
			--*************************************************
    		,0 AS AdesioneSuccessivaAvanzato
			,CASE 
				WHEN RISCHIO_NA.VAR_PERC_PTF IS NULL THEN -1000
				ELSE RISCHIO_NA.VAR_PERC_PTF 
			END AS VaRRisorseNonAssociate	
			,CASE 
				WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000
				ELSE RISCHIO_NA.COPERTURA
			END AS CoperturaRisorseNonAssociate
			,CASE 
				WHEN RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF IS NULL THEN -1000
				ELSE RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF 
			END AS VaRTotaleRisorseFinanziarie
			,CASE 
				WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000
				ELSE RISCHIO_RISORSEFINANZIARIE.COPERTURA
			END AS CoperturaTotaleRisorseFinanziarie
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'D' 
					AND ftp.codicefiscale = contratti.cod_fiscale AND ftp.rete = contratti.Rete),0)  
			AS IdReportPDFDiagnosi   
			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
					AND ftp.codicefiscale = contratti.cod_fiscale AND ftp.rete = contratti.Rete),0) 
			AS IdReportPDFMonitoraggio 
		FROM  [C6MartPeriodico].contrattoSEI contratti
		left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
			on contratti.Rete = promotori.Rete
			and contratti.Cod_Agente = promotori.Id_Promotore
		inner join [C6MartPeriodico].ANAG_CLIENTI clienti
			on contratti.Rete = clienti.Rete
			and contratti.Cod_Fiscale = clienti.Cod_Fiscale
		--V non stampo se non ha patrimonio
		inner join [C6MartPeriodico].vPatrimoniobfAggregato patrimonioBF
			on contratti.Rete = patrimonioBF.Rete
			and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
		left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
			on contratti.Rete = patrimonioAltro.Rete
			and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
		left outer join [C6MartPeriodico].vPatrimonioImmobAggregato patrimonioImmobiliare
			on contratti.Rete = patrimonioImmobiliare.Rete
			and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
		left outer join [C6MartPeriodico].vPatrimonioTerziAggregato patrimonioTerzi
			on contratti.Rete = patrimonioTerzi.Rete
			and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
		left outer join [C6MartPeriodico].MIFID MIFID
			on contratti.Rete = MIFID.Rete
			and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
		left outer join [C6MartPeriodico].vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
			on contratti.Rete = PatrNonRapprAsset.Rete
			and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
		left outer join [C6MartPeriodico].vNumeroIntermediari numIntermediari
			on contratti.Rete = numIntermediari.Rete 
			and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
		left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_NA
			on contratti.Rete = RISCHIO_NA.Rete 
			and contratti.Cod_Fiscale = RISCHIO_NA.Cod_Fiscale
			and RISCHIO_NA.cod_aggreg = 'COMPLESSIVO|BF|NA'
			--modificata da Valerio 12 marzo 2012
			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		inner join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
			on contratti.Rete = RISCHIO_RISORSEFINANZIARIE.Rete 
			and contratti.Cod_Fiscale = RISCHIO_RISORSEFINANZIARIE.Cod_Fiscale
			and RISCHIO_RISORSEFINANZIARIE.cod_aggreg = 'COMPLESSIVO|BF'		
		left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
			on contratti.Rete = PARTITEVIAGGIANTI.RETE
			and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
		left join c6martperiodico.monitoraggio_attuale monit
			on patrimonioBF.rete = monit.rete
			and patrimonioBF.cod_fiscale = monit.cod_fiscale
		left join c6martperiodico.monitoraggio_iniziale monitInit
			on patrimonioBF.rete = monitInit.rete
			and patrimonioBF.cod_fiscale = monitInit.cod_fiscale
			left join c6martperiodico.monitoraggio_report monitReport
			on patrimonioBF.rete = monitReport.rete
			and patrimonioBF.cod_fiscale = monitReport.cod_fiscale
		WHERE 1=1
			 and mifid.scaduto = 0  
			 end
--USE [C6StampeCentralizzate]
--GO
--/****** Object:  StoredProcedure [wh].[ProduceMaladetti]    Script Date: 08/02/2022 17:28:30 ******/
--SET ANSI_NULLS ON
--GO
--SET QUOTED_IDENTIFIER ON
--GO
--ALTER procedure [wh].[ProduceMaladetti]
--as 
--begin
--truncate table 	wh.Maledetti
--insert into wh.Maledetti --70 minutes
--(
--[i_CodiceFiscale]
--      ,[i_Rete]
--      ,[Rete]
--      ,[NomeRete]
--      ,[Agente]
--      ,[CognomeAgente]
--      ,[NomeAgente]
--      ,[IndirizzoAgente]
--      ,[CapAgente]
--      ,[CittaAgente]
--      ,[TelefonoAgente]
--      ,[CodiceFiscale]
--      ,[CognomeCliente]
--      ,[NomeCliente]
--      ,[ProfiloIsAct]
--      ,[PatrimonioNonRappresentabile]
--      ,[PartiteViaggiantiDisinv]
--      ,[PartiteViaggiantiInv]
--      ,[ContoCorrente]
--      ,[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
--      ,[RisorseNonAssociate]
--      ,[Patrimonioaltroctv]
--      ,[Patrimonioimmobiliarectv]
--      ,[PatrimonioTerzictv]
--      ,[PatrimonioTerziCtvAlNettoContoCorrente]
--      ,[PatrimonioTerziContoCorrente]
--      ,[Patrimoniobancafideuramctv]
--      ,[Patrimoniocomplessivototalectv]
--      ,[NumeroIntermediari]
--      ,[CodiceContratto]
--      ,[tip_contratto]
--      ,[contrattoold]
--      ,[NoMonitoraggio]
--      ,[descrizioneDiagnosi]
--      ,[idModelloDiagnosi]
--      ,[idReportDiagnosi]
--      ,[descrizioneMonitoraggio]
--      ,[idReportMonitoraggio]
--      ,[idModelloMonitoraggio]
--      ,[AdesioneSuccessivaAvanzato]
--      ,[VaRRisorseNonAssociate]
--      ,[CoperturaRisorseNonAssociate]
--      ,[VaRTotaleRisorseFinanziarie]
--      ,[CoperturaTotaleRisorseFinanziarie]
--      ,[IdReportPDFDiagnosi]
--      ,[IdReportPDFMonitoraggio]
--	  )
--	SELECT  DISTINCT
--			contratti.Cod_Fiscale as i_CodiceFiscale
--			,contratti.Rete as i_Rete
--			--DATI COMUNI
--			--RETE
--			,contratti.Rete
--			,CASE WHEN UPPER(contratti.Rete) = 'F' THEN 'Fideuram' ELSE 'Sanpaolo Invest' END NomeRete
--			--AGENTE	
--			,contratti.Cod_Agente Agente
--			,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'') ELSE '' END) CognomeAgente
--			,(CASE UPPER(ISNULL(promotori.STATO,'')) WHEN 'ATTIVO' THEN isnull(promotori.Nome,'') ELSE '' END) NomeAgente
--			,isnull(promotori.Indirizzo,'') IndirizzoAgente
--			,isnull(promotori.Cap,'') CapAgente
--			,isnull(promotori.Localita,'') CittaAgente
--			,isnull(promotori.TEL_Recapito,'') TelefonoAgente
--			--CLIENTE
--			,contratti.Cod_Fiscale CodiceFiscale
--			,clienti.Cognome CognomeCliente
--			,clienti.nome NomeCliente
--			--PATRIMONI CLIENTE
--			,CASE WHEN isnull( MIFID.SCADUTO,1) = 1 THEN 0 ELSE 1 END ProfiloIsAct
-- 			,isnull(PatrNonRapprAsset.Controvalore,0) as PatrimonioNonRappresentabile
--			,isnull(patrimonioBF.PartiteViaggiantiDisinv,0) as PartiteViaggiantiDisinv
--			,isnull(partiteViaggianti.Importo,0) as PartiteViaggiantiInv
--			,isnull(patrimonioBF.ContoCorrente,0) as  ContoCorrente
--			,isnull(patrimonioBF.PatrimonioSenzaCC,0) as PatrimonioBancaFideuramCtvAlNettoContoCorrente 
--			,isnull(patrimonioBF.PatrimonioNonAssociato,0) as  RisorseNonAssociate
--			,isnull(patrimonioAltro.Patrimonioaltro,0) as Patrimonioaltroctv
--			,isnull(patrimonioImmobiliare.PatrimonioImmob,0) as Patrimonioimmobiliarectv
--			,isnull(patrimonioTerzi.ctv,0) as PatrimonioTerzictv
--			,isnull(patrimonioTerzi.ControvaloreSenzaCC,0) as PatrimonioTerziCtvAlNettoContoCorrente 
--			,isnull(patrimonioTerzi.ControvaloreCC,0) as PatrimonioTerziContoCorrente
--			,isnull(patrimonioBF.ctv,0) as Patrimoniobancafideuramctv
--			,(isnull(patrimonioBF.ctv,0) + isnull(patrimonioTerzi.ctv,0)) as Patrimoniocomplessivototalectv
--			,isnull(numIntermediari.NumeroIntermediari,0) as NumeroIntermediari
--			--CONTRATTO
--			,contratti.CodiceContratto CodiceContratto
--			,contratti.tip_contratto AS tip_contratto 
--			,0 AS contrattoold
--			--*************************************************
--			,CASE WHEN count(monit.id_area) OVER (PARTITION BY monit.rete,monit.cod_fiscale) = 0
--				or isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0)
--				or monitReport.cod_fiscale is null 
--				THEN 1
--				ELSE 0
--			END AS NoMonitoraggio
--			,'Diagnosi' as descrizioneDiagnosi
--			,CASE 
--				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 5
--				ELSE -1
--			END AS idModelloDiagnosi
--			,CASE 
--				WHEN contratti.freq_Diagnosi is not null AND contratti.tip_contratto = 0 THEN 1
--				ELSE -1
--			END AS idReportDiagnosi
--			,'Monitoraggio' as descrizioneMonitoraggio
--			,4 as idReportMonitoraggio--4
--			,CASE isnull(tip_contratto,0) 
--					WHEN 0 THEN 12--12
--					WHEN 1 THEN 12--12
--					WHEN 2 THEN 13--13
--			END AS idModelloMonitoraggio
--			--*************************************************
--    		,0 AS AdesioneSuccessivaAvanzato
--			,CASE 
--				WHEN RISCHIO_NA.VAR_PERC_PTF IS NULL THEN -1000
--				ELSE RISCHIO_NA.VAR_PERC_PTF 
--			END AS VaRRisorseNonAssociate	
--			,CASE 
--				WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000
--				ELSE RISCHIO_NA.COPERTURA
--			END AS CoperturaRisorseNonAssociate
--			,CASE 
--				WHEN RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF IS NULL THEN -1000
--				ELSE RISCHIO_RISORSEFINANZIARIE.VAR_PERC_PTF 
--			END AS VaRTotaleRisorseFinanziarie
--			,CASE 
--				WHEN RISCHIO_NA.COPERTURA IS NULL THEN -1000
--				ELSE RISCHIO_RISORSEFINANZIARIE.COPERTURA
--			END AS CoperturaTotaleRisorseFinanziarie
--			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'D' 
--					AND ftp.codicefiscale = contratti.cod_fiscale AND ftp.rete = contratti.Rete),0)  
--			AS IdReportPDFDiagnosi   
--			,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
--					AND ftp.codicefiscale = contratti.cod_fiscale AND ftp.rete = contratti.Rete),0) 
--			AS IdReportPDFMonitoraggio 
--		FROM  [C6MartPeriodico].contrattoSEI contratti
--		left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
--			on contratti.Rete = promotori.Rete
--			and contratti.Cod_Agente = promotori.Id_Promotore
--		inner join [C6MartPeriodico].ANAG_CLIENTI clienti
--			on contratti.Rete = clienti.Rete
--			and contratti.Cod_Fiscale = clienti.Cod_Fiscale
--		--V non stampo se non ha patrimonio
--		inner join [C6MartPeriodico].vPatrimoniobfAggregato patrimonioBF
--			on contratti.Rete = patrimonioBF.Rete
--			and contratti.Cod_Fiscale = patrimonioBF.Cod_Fiscale 
--		left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
--			on contratti.Rete = patrimonioAltro.Rete
--			and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
--		left outer join [C6MartPeriodico].vPatrimonioImmobAggregato patrimonioImmobiliare
--			on contratti.Rete = patrimonioImmobiliare.Rete
--			and contratti.Cod_Fiscale = patrimonioImmobiliare.Cod_Fiscale 
--		left outer join [C6MartPeriodico].vPatrimonioTerziAggregato patrimonioTerzi
--			on contratti.Rete = patrimonioTerzi.Rete
--			and contratti.Cod_Fiscale = patrimonioTerzi.Cod_Fiscale 
--		left outer join [C6MartPeriodico].MIFID MIFID
--			on contratti.Rete = MIFID.Rete
--			and contratti.Cod_Fiscale = MIFID.Cod_Fiscale
--		left outer join [C6MartPeriodico].vPatrimonioNonRappresentabileAsset PatrNonRapprAsset
--			on contratti.Rete = PatrNonRapprAsset.Rete
--			and contratti.Cod_Fiscale = PatrNonRapprAsset.Cod_Fiscale
--		left outer join [C6MartPeriodico].vNumeroIntermediari numIntermediari
--			on contratti.Rete = numIntermediari.Rete 
--			and contratti.Cod_Fiscale = numIntermediari.Cod_Fiscale
--		left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_NA
--			on contratti.Rete = RISCHIO_NA.Rete 
--			and contratti.Cod_Fiscale = RISCHIO_NA.Cod_Fiscale
--			and RISCHIO_NA.cod_aggreg = 'COMPLESSIVO|BF|NA'
--			--modificata da Valerio 12 marzo 2012
--			--left outer join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
--		inner join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
--			on contratti.Rete = RISCHIO_RISORSEFINANZIARIE.Rete 
--			and contratti.Cod_Fiscale = RISCHIO_RISORSEFINANZIARIE.Cod_Fiscale
--			and RISCHIO_RISORSEFINANZIARIE.cod_aggreg = 'COMPLESSIVO|BF'		
--		left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
--			on contratti.Rete = PARTITEVIAGGIANTI.RETE
--			and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
--		left join c6martperiodico.monitoraggio_attuale monit
--			on patrimonioBF.rete = monit.rete
--			and patrimonioBF.cod_fiscale = monit.cod_fiscale
--		left join c6martperiodico.monitoraggio_iniziale monitInit
--			on patrimonioBF.rete = monitInit.rete
--			and patrimonioBF.cod_fiscale = monitInit.cod_fiscale
--			left join c6martperiodico.monitoraggio_report monitReport
--			on patrimonioBF.rete = monitReport.rete
--			and patrimonioBF.cod_fiscale = monitReport.cod_fiscale
--		WHERE 1=1
--			 and mifid.scaduto = 0  
--			 end