-- Schema: wh
-- Stored Procedure: ProduceMaladetti

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 N
