-- Schema: C6MartPeriodicoImmobiliare
-- Stored Procedure: SP_PopolaW6IMM






-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	Popola la tabella W6IMM per la quadratura semestrale immobiliare
-- =============================================
CREATE PROCEDURE [C6MartPeriodicoImmobiliare].[SP_PopolaW6IMM]

	-- Add the parameters for the stored procedure here
	@DataUltimoAggiornamento as varchar(10) 

 
AS
BEGIN



	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

	if (Exists (Select * from c6martperiodicoimmobiliare.W6IMM))
	begin
		Delete from c6martperiodicoimmobiliare.W6IMM
	end

    Insert into c6martperiodicoimmobiliare.W6IMM 
	Select
		distinct 
					isnull(cli.rete,'') as rete, 
					isnull(coalesce(cli.codFis, cli.pIva),'') as codfis,

					isnull(cli.codiceContratto,'') as contratto,
			
					case 
						when (cli.StatoContratto in ('BASE')) then 'BASE' else 'SEI' end as TIPCONS,

					case 
						when (srv.chiaveservizioAggiuntivo = 1) then 'SI' else 'NO' end as SERVAGG,

					case 
						when (srv.flagattivo=1) then 'ATTIVO' else 'non attivo' END AS ADDIMM,

					keyimport.statoImportazione as StatoImportazione,
					'',
					'',
					''
		from [CONSUNI_periodico].[ConsulenzaUnica].dbo.vInfoCliente CLI			
			 left outer join [CONSUNI_periodico].[ConsulenzaUnica].dbo.v_servizi_aggiuntivi srv on CLI.chiaveClientePB=srv.chiaveclientepb and srv.chiaveServizioAggiuntivo = 1 and srv.flagattivo = 1 	
			 inner join (
		select distinct s.chiaveImportazione,i.statoImportazione, s.chiaveClientePB 		
				 from  [CONSUNI_periodico].[ConsulenzaUnica].[dbo].[PatrimonioImmobiliareStaging] s inner join [CONSUNI_periodico].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente i on s.chiaveImportazione=i.chiaveImportazione		
			 where chiaveProdottoTerzi IN (			
		select chiaveProdottoTerzi from [CONSUNI_periodico].[ConsulenzaUnica].dbo.PatrimonioTerzi where  idTipoProdotto='IM' AND idImmobileCatasto IS NOT NULL and dtfinevalidita='9999-12-31 00:00:00.000') 
		and dtUltimoAggiornamento < convert(datetime,'2024-03-31') ) keyimport on keyimport.chiaveClientePB=cli.chiaveClientePB
		where StatoContratto IN ('SEI','AVANZATOBASE','BASE')


		
		
--Prima di avviare la proc controllare se non vi siano clienti che abbiano lo statoimportazione a Deleted e l'addimm attivo. In quel caso ricordarsi di lanciare l'update fornito da Giuseppe


  /*********** Vecchie Versioni *****************/

	--SELECT 
	--		distinct 
	--		isnull(cli.rete,''), 
	--		isnull(coalesce(cli.codFis, cli.pIva),'') as codfis,
	--		isnull(con.codiceContratto,''),
			
	--		case 
	--			when (cli.StatoContratto in ('BASE')) then 'BASE' else 'SEI' end as TIPCONS,

	--		case 
	--			when (srv.chiaveservizioAggiuntivo = 1) then 'SI' else 'NO' end as SERVAGG,

	--		case 
	--			when (srv.flagattivo=1) then 'ATTIVO' else 'non attivo' END AS ADDIMM,
	--		--cli.CognomeCliente, 
	--		--cli.CognomeCliente, 
	--		--cli.NomeCliente, 
	--		--cli.Agente, 
	--		--cli.CognomePb, 
	--		--cli.NomePb,
	--		--cli.codman, 
	--		--srv.descrizione,
	--		--srv.dataAttivazione,
	--		--srv.dataRevoca,
	--		--srv.flagattivo,
	--		--srv.ctr_immobili AS tot_immobili,
	--		--srv.ctr_cli_mon_imm,
	--		--(select count(*) count_immobili_da_catasto from PatrimonioTerzi pt where idTipoProdotto='IM' AND idImmobileCatasto IS NOT NULL AND pt.chiaveClientePB=cli.chiaveClientePB AND dtfinevalidita ='9999-12-31 00:00:00.000' GROUP BY chiaveClientePB) Imm_catasto,
	--		--(select count(*) count_immobili_manuali from PatrimonioTerzi pt where idTipoProdotto='IM' AND idImmobileCatasto IS  NULL AND pt.chiaveClientePB=cli.chiaveClientePB AND dtfinevalidita ='9999-12-31 00:00:00.000' GROUP BY chiaveClientePB) Imm_manuali,
	--		isnull((select statoImportazione from [CONSUNI].[ConsulenzaUnicaFL].dbo.Immobiliare_Cliente rpt  where rpt.dtUltimoAggiornamento < convert(datetime,