-- Schema: C6MartPeriodico
-- Stored Procedure: RP_DM_POPOLACONTRATTI

--create view as

CREATE PROCEDURE [C6MartPeriodico].[RP_DM_POPOLACONTRATTI] AS
BEGIN

INSERT INTO LOG_ESECUZIONE
		(Nome, Inizio, Nota)
	VALUES (
		'RP_DM_POPOLACONTRATTI',
		GETDATE(),
		'Elaborazione giornaliera'
	)	
 
	
SELECT a.chiaveclientepb as ChiaveClientePb
  INTO #CAMBIOCONTRATTO
	FROM                               
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf
JOIN [C6MartPeriodico].[vcontratti] vc
    ON b.chiaveClientePB = vc.chiaveClientePB 
 WHERE a.codicecontratto<>vc.codicecontratto

INSERT INTO  [C6MartPeriodico].[CONTRATTOSEI_METADATI_ST]   
	SELECT * FROM [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)

INSERT INTO  [C6MartPeriodico].[VCONTRATTI_ST]   
	SELECT * FROM [C6MartPeriodico].[VCONTRATTI] 
				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)

DELETE [C6MartPeriodico].[CONTRATTOSEI_METADATI] 
 				WHERE  ChiaveClientePb in(SELECT ChiaveClientePb FROM  #CAMBIOCONTRATTO)

--DROP  TABLE #CAMBIOCONTRATTO 

  

TRUNCATE TABLE C6MartPeriodico.VCONTRATTI
 
INSERT INTO C6MartPeriodico.VCONTRATTI
SELECT DISTINCT
	b.chiaveClientePB, 
	
	--FFCODICEFISCALE(codfis,codman,c.piva) as Cod_fiscale
	--c.codMan AS COD_MANDATO,
	--FFPIVA(codman,c.piva) as PIVA_FIDUCIARIA
	
	case
		when(isnull(ltrim(rtrim(codman)),'') <> '') 
			then 'FF@'+codman
		when (isnull(codfis,'') <> '')
			then codfis
		else
			c.piva
	end as Cod_fiscale,
	
	c.codMan AS COD_MANDATO,
	
	case 
		when(isnull(ltrim(rtrim(codman)),'') <> '') 
			then c.piva
		else
			''
	END AS PIVA_FIDUCIARIA, 
	
	f.pb AS COD_AGENTE, 
	d.rete, 
    a.codiceContratto, 
    a.flagRol, 
    a.address AS INDIRIZZO, 
    a.cap, 
    a.city AS CITTA, 
    a.province AS PROVINCIA, 
    a.nation AS NAZIONE, 
    a.presso, 
    a.email, 
    a.freqRepDia AS FREQ_DIAGNOSI, 
    a.freqRepMon AS FREQ_MONITORAGGIO, 
    a.genReport AS GENERAZIONEREPORT, 
    a.dtFirmaBase AS DATA_INIZIOBASE, 
    a.dtEndBase AS DATA_FINEBASE, 
    a.dtProcBase as DATA_PERF_BASE, 
	a.dtProcAv as DATA_PERF,
    a.dtFirmaSei AS DATA_INZIOAVANZATO, 
    a.dtEndSei AS DATA_FINEAVANZATO,   
	CASE e.tipcontratto
		WHEN 'A' THEN 1
		WHEN 'P' THEN 2
	    ELSE 0
	END AS TIP_CONTRATTO,
	 CASE
		WHEN e.riattivazione is null THEN 0 
		ELSE 1
	END AS RIATTIVAZIONE

FROM                               
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.Contratto a
JOIN 
	[CONSEVO_PERIODICO].[consulenzaBase].dbo.ClientePB b 
	ON b.chiaveClientePB = a.chiaveClientePB 
	and a.status in ('SEI','AVANZATOBASE','REVOCASEI')
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.Cliente c 
	ON b.chiaveCliente = c.chiaveCliente 
JOIN [CONSEVO_PERIODICO].[consulenzaBase].dbo.PromotoreBancario d 
	ON b.chiavePB = d.chiavePB
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattosei e
	ON a.codiceContratto = e.cod_conf
JOIN [CONSEVO_PERIODICO].[consulenzaBaseFL].dbo.cbs_dbcontrattobase f
	ON a.codiceContratto = f.cod_conf

INSERT INTO [C6MartPeriodico].[CONTRATTOSEI_METADATI]
           ([CHIAVECLIENTEPB]
           ,[ClienteMIGRATO]
           ,[RISORSENA]
           ,[PROFILOATTIVO]
           ,[NumSolleciti]
           ,[NumRevoche]
           ,[Data_ultimoSollecito]
           ,[Data_ultimaRevoca]
           ,[InvioBenvenuto]
           ,[Tip_riattivazi
