Create 
--alter  
procedure [C6MartPeriodico].[GESTIONE_SELECT_PDF_GETDATATHREADS_CRUSCOTTO_13] (@volThreads int = 99999)
AS
Declare @ID_PARALLEL int =13
BEGIN SET TRANSACTION ISOLATION LEVEL READ COMMITTED 
BEGIN TRANSACTION  
update C6MartPeriodico.CRUSCOTTOSWITCH set dtstamp = getdate() where elab = 1 
IF @@ROWCOUNT = 1   
BEGIN
	declare @dtstampe as datetime
	set @dtstampe = getdate()
	declare @conta as int
	declare @elab as int
	declare @dataTrimestre as datetime
    update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set elab = 1
	from  C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b 
	      join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = b.CODICEFISCALE and par.Rete = b.Rete
	where elab = 3 and datediff(minute, dtstamp, @dtstampe)>5 and datediff(minute, dtstamp, @dtstampe)<25
	set @elab = 0--DA ELABORARE PRIORITA ALTA
	select @conta = count(*)   
	from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI b
	     join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = b.CODICEFISCALE and par.Rete = b.Rete
	WHERE elab = @elab 
	if(@conta=0) 
	BEGIN
		set @elab = 1--DA ELABORARE PRIORITA MEDIA
		select @conta = count(*)   
		from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI b
		     join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = b.CODICEFISCALE and par.Rete = b.Rete
		WHERE elab = @elab
	END
	if(@conta=0)
	BEGIN
		set @elab = 2--DA ELABORARE
		select @conta = count(*)   
		from C6MartPeriodico.CRUSCOTTO_CONTRATTISEI b
		     join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = b.CODICEFISCALE and par.Rete = b.Rete
		WHERE elab = @elab
 	END
	SELECT @dataTrimestre = c6martperiodico.gettrimestre2(getdate(),0)	
	;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 <> ''
	) 
	SELECT distinct TOP (@volThreads) Maledetti.[Rete],Maledetti.[NomeRete],Maledetti.[Agente],Maledetti.[CognomeAgente]
		,Maledetti.[NomeAgente],Maledetti.[IndirizzoAgente]
		,Maledetti.[CapAgente],Maledetti.[CittaAgente],Maledetti.[TelefonoAgente],Maledetti.[CodiceFiscale],Maledetti.[CognomeCliente]
		,Maledetti.[NomeCliente]
		,Maledetti.[ProfiloIsAct]
		,Maledetti.[PatrimonioNonRappresentabile]
		,Maledetti.[PartiteViaggiantiDisinv]
		,Maledetti.[PartiteViaggiantiInv]
		,Maledetti.[ContoCorrente]
		,Maledetti.[PatrimonioBancaFideuramCtvAlNettoContoCorrente]
		,Maledetti.[RisorseNonAssociate]
		,Maledetti.[Patrimonioaltroctv]
		,Maledetti.[Patrimonioimmobiliarectv]
		,Maledetti.[PatrimonioTerzictv]
		,Maledetti.[PatrimonioTerziCtvAlNettoContoCorrente]
		,Maledetti.[PatrimonioTerziContoCorrente]
		,Maledetti.[Patrimoniobancafideuramctv]
		,Maledetti.[Patrimoniocomplessivototalectv]
		,Maledetti.[NumeroIntermediari]
		,Maledetti.[CodiceContratto]
		,Maledetti.[tip_contratto]
		,Maledetti.[contrattoold]
		,Maledetti.[NoMonitoraggio]
		,Maledetti.[descrizioneDiagnosi]
		,Maledetti.[idModelloDiagnosi]
		,Maledetti.[idReportDiagnosi]
		,Maledetti.[descrizioneMonitoraggio]
		,Maledetti.[idReportMonitoraggio]
		,Maledetti.[idModelloMonitoraggio]
		,Maledetti.[AdesioneSuccessivaAvanzato]
		,Maledetti.[VaRRisorseNonAssociate]
		,Maledetti.[CoperturaRisorseNonAssociate]
		,Maledetti.[VaRTotaleRisorseFinanziarie]
		,Maledetti.[CoperturaTotaleRisorseFinanziarie]
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp 
		where tipoReport = 'D' AND ftp.codicefiscale = cdt.codicefiscale AND ftp.rete = cdt.Rete),0) AS IdReportPDFDiagnosi   
		,isnull((SELECT max(idReport) FROM c6martperiodico.GESTIONE_PDF_FTP ftp where tipoReport = 'M' 
				AND ftp.codicefiscale = cdt.codicefiscale AND ftp.rete = cdt.Rete),0) AS IdReportPDFMonitoraggio,
		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',
		CASE 
			WHEN wse.FLGPROF IS NULL or wse.FLGPROF ='' THEN 'N'
			ELSE wse.FLGPROF
		END as 'FLGPROF',
		scaduto as scaduto
		into #result
		FROM wh.Maledetti  Maledetti
--EN20170712: begin
			left outer join (select * from WSEIAN_1 where rank=1) wse 
			on wse.codfis = Maledetti.CodICEFiscale and  wse.rete = Maledetti.rete
--EN20170712: end
			inner join C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  cdt on cdt.codicefiscale = Maledetti.i_codicefiscale and cdt.rete = Maledetti.rete
			join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = cdt.CODICEFISCALE and par.Rete = cdt.Rete
			left join  C6MartPeriodico.CRUSCOTTO_SCARTI_PDFGENERATOR PDFGENERATOR on PDFGENERATOR.rete = Maledetti.i_rete and PDFGENERATOR.codicefiscale = Maledetti.i_codicefiscale 
			left join  C6MartPeriodico.tb_SegnalazioniDataQuality Quality  on Quality.rete = Maledetti.i_rete and Quality.codicefiscale = Maledetti.i_codicefiscale 
            left join [C6StampeCentralizzate].[C6MartPeriodico].ExcludedList bl on bl.codicefiscale = Maledetti.i_codicefiscale and bl.Rete =  Maledetti.i_rete
			where cdt.elab = @elab --and 
			--scaduto = 0  
			and tip_contratto<>3
			-- FerAcu 20241106 per non stamparte i casi in BL che creano problemi in fase di ZIPPING
			and bl.codicefiscale is null
	update C6MartPeriodico.CRUSCOTTO_CONTRATTISEI 
	set
		dtstamp = @dtstampe
		,elab = case 
				when a.codicefiscale is null then -1 
				else 3
				end
		,tipoCliente = a.TIP_CONTRATTO				
		,isDiagnosi = a.IDMODELLODIAGNOSI  			  
	from #result a 
	inner join C6MartPeriodico.CRUSCOTTO_CONTRATTISEI  b 
	join C6MartPeriodico.TRIMESTRALE_RUN_MASS_PARALLEL par on par.ID_PARALLEL = @ID_PARALLEL and par.CODICEFISCALE = b.CODICEFISCALE and par.Rete = b.Rete
	on a.codicefiscale = b.codicefiscale and a.rete = b.rete
	select * from #result 
END
COMMIT TRANSACTION
END