CREATE   procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_PartiteViaggianti_CAMPIONE]
(@volThreads int = 10000)
AS
BEGIN SET TRANSACTION ISOLATION LEVEL READ COMMITTED 
BEGIN TRANSACTION  
declare @dataTrimestre as datetime
SELECT @dataTrimestre = c6martperiodico.gettrimestre2(getdate(),0)	
----EN20170712: begin
--		;with WSEIAN_1 as
--		(
--		select codfis, rete, flagnqp, flgprlrde, FLAGPG, dttrim, row_number()  over( partition by codfis, rete order by dttrim desc)  as rank  
--		from [C6StagingPeriodico].[WSEIAN]
--		WHERE codman = ''
--		UNION ALL 
--		select 'FF@'+ codman as codfis, rete, 'N' as flagnqp, null as flgprlrde, null asFLAGPG, dttrim, row_number()  over( partition by codman, rete order by dttrim desc)  as rank
--		from [C6StagingPeriodico].[WSEIAN]
--		WHERE codman <> ''
--		) 
----EN20170712: end
--EN20171024: begin
	;with WSEIAN_1 as
	(
	select codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, row_number()  over( partition by codfis, rete order by dttrim desc)  as rank  
	from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman = ''
	UNION ALL  
	select 'FF@'+ codman as codfis, rete, flagnqp, flgprlrde, FLAGPG, FLGPROF, dttrim, row_number()  over( partition by codman, rete order by dttrim desc)  as rank
	from [C6StagingPeriodico].[WSEIAN2]
	WHERE codman <> ''
	) 
--EN20171024: end
SELECT DISTINCT TOP(@volThreads)
			--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
			--*************************************************
			,0 AS NoMonitoraggio			
			,'Diagnosi' as descrizioneDiagnosi
			,-1 idModelloDiagnosi
			,-1 AS idReportDiagnosi
			,'Monitoraggio' as descrizioneMonitoraggio
			,4 as idReportMonitoraggio 
			,14 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
--EN20170712: begin
			,CASE 
				WHEN wse.flagnqp IS NULL or wse.flagnqp ='' THEN 'N'
				ELSE wse.flagnqp
			END as 'flagnqp'
			--wse.flgprlrde as 'flagprlrde',
			,CASE 
				WHEN wse.flgprlrde ='' THEN NULL
				ELSE wse.flgprlrde
			END as 'flagprlrde'
			,CASE 
				WHEN wse.FLAGPG IS NULL THEN 0
				ELSE wse.FLAGPG
			END as 'flagpg'
--EN20170712: end
--EN20171024: begin
			,CASE 
				WHEN wse.FLGPROF IS NULL or wse.FLGPROF ='' THEN 'N'
				ELSE wse.FLGPROF
			END as 'FLGPROF'
--EN20171024: end
		INTO #Maledetti
		FROM [C6MartPeriodico].contrattoSEI contratti
			--C6MartPeriodico.vcontrattipergenerazionereport contratti	
--EN20170716: begin
		left outer join (select * from WSEIAN_1 where rank=1) wse 
		on wse.codfis = contratti.Cod_Fiscale and  wse.rete = contratti.rete
--EN20170716: end
		INNER JOIN (SELECT COD_FISCALE,RETE FROM [C6MartPeriodico].vPatrimoniobfAggregato  
							WHERE ( CTV + PatrimonioNonAssociato + ContoCorrente + PatrimonioSenzaCC) = 0
  								  and PartiteViaggiantiDisinv > 0 
  						UNION
  						SELECT PV1.COD_FISCALE,PV1.RETE  FROM C6MartPeriodico.PARTITE_VIAGGIANTI PV1 
  									LEFT JOIN  [C6MartPeriodico].vPatrimoniobfAggregato BFA
  									ON BFA.COD_FISCALE = PV1.COD_FISCALE AND BFA.RETE = PV1.RETE
  							 WHERE BFA.COD_FISCALE IS NULL) PV
		ON contratti.COD_FISCALE = PV.COD_FISCALE AND contratti.RETE = PV.RETE
		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
		 LEFT 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'
		--inner join [C6MartPeriodico].RISCHIO_AGGREGATO RISCHIO_RISORSEFINANZIARIE
		  left 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	
		inner join c6martperiodico.TB_Campione CRUS
			on contratti.rete = CRUS.rete
			and contratti.cod_fiscale = CRUS.cod_fiscale 					
		WHERE 1=1
			--  and  CRUS.elab in (0,1,2)
			  and mifid.scaduto = 0 			  
		      and contratti.cod_fiscale+contratti.rete not in(SELECT codicefiscale+rete  FROM [C6MartPeriodico].[CRUSCOTTO_SCARTI_PDFGENERATOR])
		      and contratti.cod_fiscale+contratti.rete not in(SELECT codicefiscale+rete  FROM C6MartPeriodico.tb_SegnalazioniDataQuality)        
 update t set flag_stampa=2
		from  c6martperiodico.TB_Campione t where cod_fiscale in (select CodiceFiscale from #Maledetti)
select * from #Maledetti 
END
COMMIT TRANSACTION