﻿CREATE procedure [wh].[MERGED_PROCEDURE_NUOVA]
AS
BEGIN
	SET NOCOUNT ON;
---------------------------------------------------------------------
truncate table wh.pl_s85rendimentoportafogliocono
truncate table wh.pl_areemonitorate
truncate table wh.pl_s43lineaselfbf
truncate table wh.pl_s10patrimoniofinanziario
truncate table wh.pl_prodotti_non_associati_area_inv
truncate table wh.pl_d2_s151profilodirischio
truncate table wh.pl_d2_s152patrimonio
truncate table wh.pl_d2_s153patrimoniofinanziario
truncate table wh.pl_d2_s154patrimoniofinanziario
truncate table wh.pl_d2_s155patrimonioimmobiliare
truncate table wh.pl_d2_s156altropatrimonio
truncate table wh.pl_d2_s157confrontopiramidi
truncate table wh.pl_d2_s158piramidemodello
truncate table wh.pl_d2_s159patrimoniofinanziario
truncate table wh.pl_d2_s160dettaglioprodottibf
truncate table wh.pl_d2_s162dettaglioprodotti
truncate table wh.pl_d2_s163patrimoniofinanziariomassetclass
truncate table wh.pl_d2_s164polizzealtriistituti
truncate table wh.pl_d2_s165fondialtriistituti
truncate table wh.pl_d2_s167distribuzionerischiocredito
truncate table wh.pl_d2_s168tabellaemittenti
truncate table wh.pl_s43dettaglioprodottibf
truncate table wh.PL_D2_S169RischiomercatoRischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.pl_d2_s171patrimoniononrappresentabileassettclass
truncate table wh.pl_mp_s137bonus
truncate table wh.pl_mp_s135monitoraggioinvestimento
truncate table wh.pl_mp_s134monitoraggioliquidita
truncate table wh.pl_mp_s134bismonitoraggioliqinv
truncate table wh.pl_mp_s133bisprincipaliprodotti
truncate table wh.pl_mp_s133areebisognoprincprod
truncate table wh.pl_mp_s146rischiodiversificazione
truncate table wh.pl_mp_s141analisirisparmiotable
truncate table wh.pl_mp_s140analisirisparmiocharts
truncate table wh.pl_mp_s137biscapitaleprotetto
truncate table wh.pl_s43contocorrentebf
truncate table wh.pl_s43bisdettaglioprodottibf
truncate table wh.pl_s88patrimoniononconsideratonelcalcolodelrendimento
truncate table wh.pl_s82datisintetici
truncate table wh.pl_s82bisdatisintetici
truncate table wh.pl_s76alternativapatrimoniononrappresentabileassettclass
truncate table wh.pl_s80alternativa
truncate table wh.pl_s96rischiomercatorischiocredito
truncate table wh.pl_d2_s170rischiodiversificazione
truncate table wh.PL_D_S178IndicatoriEsitoAdeguatezza
------------------------------------------------------------------------
---------------------------------------------PL_S85RendimentoPortafoglioCono
	BEGIN
		exec wh.MERGED_PROCEDURE_S85
	END
---------------------------------------------------------------------------	
---------------------------------------------PL_S43LineaSelfBF
	BEGIN
		exec wh.MERGED_PROCEDURE_S43
	END
---------------------------------------------------------------------------
---------------------------------------------PL_S10PatrimonioFinanziario
	BEGIN
		exec [wh].[MERGED_PROCEDURE_S10]
	END
---------------------------------------------------------------------------
---------------------------------------------PL_Prodotti_Non_Associati_Area_Inv
	BEGIN
		exec [wh].[MERGED_PROCEDURE_PL_Prodotti_Non_Associati_Area_Inv]
	END
---------------------------------------------------------------------------
---------------------------------------------PL_D3_S151ProfiloDiRischio
	BEGIN
		exec [wh].[MERGED_PROCEDURE_S151]
	END
---------------------------------------------------------------------------
---------------------------------------------PL_D2_S169RischiomercatoRischiocredito
	BEGIN
		exec wh.MERGED_PROCEDURE_S169
	END
---------------------------------------------------------------------------
---------------------------------------------PL_D2_S170RischioDiversificazione
	BEGIN
		exec wh.MERGED_PROCEDURE_S170
	END
---------------------------------------------------------------------------
---------------------------------------------PL_D_S178IndicatoriEsitoAdeguatezza: 8:24 min
	BEGIN
		exec wh.MERGED_PROCEDURE_S178
	END
---------------------------------------------------------------------------
---------------------------------------------Maledetti
	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]
			,scaduto
			)
				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 AS NomeRete
					--AGENTE     
					,contratti.Cod_Agente Agente
					,(CASE UPPER(ISNULL(promotori.STATO,''))
						WHEN 'ATTIVO' THEN isnull(promotori.Cognome,'')
						ELSE ''
					 END) AS 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 AS 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
					--*************************************************
					,ISNULL(monit.NoMonitoraggio, 1) AS NoMonitoraggio --fix 20161012
					,'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 
					,mifid.scaduto
             FROM  [C6MartPeriodico].contrattoSEI contratti
				 left outer join [C6MartPeriodico].ANAG_PROMOTORI promotori
						on contratti.Rete = promotori.Rete
						and contratti.Cod_Agente = promotori.Id_Promotore
						--65992
				 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 
						-- 64864
				 left outer join [C6Mart].vPatrimonioAltroAggregato patrimonioAltro
						on contratti.Rete = patrimonioAltro.Rete
						and contratti.Cod_Fiscale = patrimonioAltro.Cod_Fiscale 
						--64864
				 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
						--64864
				 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
						--64864
				 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'
						--64864
				 left outer join C6MartPeriodico.PARTITE_VIAGGIANTI PARTITEVIAGGIANTI
						on contratti.Rete = PARTITEVIAGGIANTI.RETE
						and contratti.Cod_Fiscale = PARTITEVIAGGIANTI.COD_FISCALE
						--64864
				 left join (
						select distinct monit.rete, monit.cod_fiscale, 
							   case when isnull(monitInit.data_foto,getDate()) >= c6martperiodico.getPreviousTrimestre(getDate(),0) then 1 
							   when monitReport.cod_fiscale is null then 1 else 0 end as NoMonitoraggio
						from c6martperiodico.monitoraggio_attuale monit
							   left join c6martperiodico.monitoraggio_iniziale monitInit on monit.rete = monitInit.rete and monit.cod_fiscale = monitInit.cod_fiscale
							   left join c6martperiodico.monitoraggio_report monitReport on monit.rete = monitReport.rete   and monit.cod_fiscale = monitReport.cod_fiscale
						) monit
						on patrimonioBF.rete = monit.rete
						and patrimonioBF.cod_fiscale = monit.cod_fiscale
             WHERE 1=1
             --144104
		end	
-------------------------------------------------------------------------
END