-- Schema: dbo
-- Stored Procedure: ElencoClientiImmobiliareDaStampare


CREATE  PROCEDURE [dbo].[ElencoClientiImmobiliareDaStampare]

 @chiaveRichiestaInput VARCHAR(Max),
 @DataFineTrimestreCorrente varchar(10)

AS 
BEGIN 

	SET NOCOUNT ON;


IF OBJECT_ID('tempdb.dbo.#vRichiesteMonitoraggioCatastoCliente', 'U') IS NOT NULL
	DROP TABLE #vRichiesteMonitoraggioCatastoCliente;

SELECT DISTINCT ca.rete
	,ca.codfis
INTO #vRichiesteMonitoraggioCatastoCliente
FROM consuni_periodico.ConsulenzaUnicaFL.dbo.vRichiesteMonitoraggioCatastoCliente ca
EXCEPT
SELECT rete
	,CASE 
		WHEN len(codicefiscale) <> 16
			AND len(codman) < 4
			THEN piva
		WHEN LEN(codicefiscale) = 16
			THEN codicefiscale
		WHEN len(CodMan) > 1
			THEN 'FF@' + CodMan
		ELSE ''
		END AS codicefiscale
FROM [C6MartPeriodicoImmobiliare].[blacklist]



--IF OBJECT_ID('tempdb.dbo.#TempChiaveRichiesta', 'U') IS NOT NULL
--	DROP TABLE #TempChiaveRichiesta;

--CREATE TABLE #TempChiaveRichiesta (chiaveRichiesta VARCHAR(1000))

--WHILE LEN(@chiaveRichiestaInput) > 0
--BEGIN
--	DECLARE @chiaveRichiesta VARCHAR(1000)

--	IF CHARINDEX(',', @chiaveRichiestaInput) > 0
--		SET @chiaveRichiesta = SUBSTRING(@chiaveRichiestaInput, 0, CHARINDEX(',', @chiaveRichiestaInput))
--	ELSE
--	BEGIN
--		SET @chiaveRichiesta = @chiaveRichiestaInput
--		SET @chiaveRichiestaInput = ''
--	END

--	INSERT INTO #TempChiaveRichiesta
--	VALUES (@chiaveRichiesta)

--	SET @chiaveRichiestaInput = REPLACE(@chiaveRichiestaInput, @chiaveRichiesta + ',', '')
--END

--SELECT chiaveRichiesta
--FROM #TempChiaveRichiesta

IF len(@chiaveRichiestaInput) > 1
	SELECT DISTINCT vRichiesteMonitoraggioCatastoCliente.*
		,vInfoCliente.chiaveClientePB
		,vInfoCliente.CodiceContratto
		,ContrattoSei.TIPCONTRATTO
	FROM consuni_periodico.ConsulenzaUnica.dbo.vInfoCliente vInfoCliente
	RIGHT JOIN consuni_periodico.ConsulenzaUnicaFL.dbo.vRichiesteMonitoraggioCatastoCliente vRichiesteMonitoraggioCatastoCliente ON (
			LTRIM(RTRIM(vInfoCliente.codFis)) = LTRIM(RTRIM(vRichiesteMonitoraggioCatastoCliente.codFis))
			OR vInfoCliente.pIva = vRichiesteMonitoraggioCatastoCliente.codFis
			)
		AND (vInfoCliente.Agente = vRichiesteMonitoraggioCatastoCliente.agente)
	INNER JOIN #vRichiesteMonitoraggioCatastoCliente mc ON mc.codfis = vRichiesteMonitoraggioCatastoCliente.codFis
		AND mc.rete = vRichiesteMonitoraggioCatastoCliente.rete
	LEFT JOIN consuni_periodico.ConsulenzaUnicaFL.dbo.CBS_DbContrattoSei ContrattoSei ON vInfoCliente.CodiceContratto = ContrattoSei.COD_CONF
	WHERE NOT (vRichiesteMonitoraggioCatastoCliente.dtElabRichiestaCatasto IS NULL)
		AND NOT (vRichiesteMonitoraggioCatastoCliente.dtElabRicezioneRischio IS NULL)
		AND vRichiesteMonitoraggioCatastoCliente.dtRiferimento = @DataFineTrimestreCorrente
		AND vRichiesteMonitoraggioCatastoCliente.chiaveRichiesta IN (
			--SELECT chiaveRichiesta
			--FROM #TempChiaveRichiesta
			select * from string_split(@chiaveRichiestaInput,',')
			)
	ORDER BY chiaveRichiesta
ELSE
	SELECT DISTINCT vRichiesteMonitoraggioCatastoCliente.*
		,vInfoCliente.chiaveClientePB
		,vInfoCliente.CodiceContratto
		,ContrattoSei.TIPCONTRATTO
	FROM consuni_periodico.ConsulenzaUnica.dbo.vInfoCliente vInfoCliente
	RIGHT JOIN consuni_periodico.ConsulenzaUnicaFL.dbo.vRichiesteMonitoraggioCatastoCliente vRichiesteMonitoraggioCatastoCliente ON (
			LTRIM(RTRIM(vInfoCliente.codFis)) = LTRIM(RTRIM(vRichiesteMonitoraggioCatastoCliente.codFis))
			OR vInfoCliente.pIva = vRichiesteMonitoraggioCatastoCliente.codFis
			)
		AND (vInfoCliente.Agente = vRichiesteMonitoraggioCatastoCliente.agente)
	INNER JOIN #vRichiesteMonitoraggioCatastoCliente mc ON mc.codfis = vRichiesteMonitoraggioCatastoCliente.codFis
		AND mc.rete = vRichiesteMonitoraggioCatastoCliente.rete
	LEFT JOIN consuni_periodico.ConsulenzaUnicaFL.dbo.CBS_DbContrattoSei ContrattoSei ON vInfoCliente.CodiceContratto = ContrattoSei.COD_CONF
	WHERE NOT (vRichiesteMonitoraggioCatastoCliente.dtElabRichiestaCatasto IS NULL)
		AND NOT (vRichiesteMonitor
